在MYSQL数据库上更新base64_encode()序列化数组? [关闭]

after saving base64_encode() serilized array now I do have a problem on how to update the data

Array
(
    [dates] => Array
        (
            [0] => 2012-01-18
            [1] => 2012-02-18
            [2] => 2012-03-18
            [3] => 2012-04-18
            [4] => 2012-05-18
        )

    [amount] => Array
        (
            [0] => 2000
            [1] => 2000
            [2] => 2000
            [3] => 2000
            [4] => 2000
        )

    [deposit] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
        )

)

for example I want to update the value of [deposit][2] where [dates][2] 2012-03-18

I have no idea on how to update the base64_encode() serilized array, is this posible to make?

-> after hearing from expert answer I do change my database structure with Col. Shrapnel advice thank you so much to all response

That is why storing base64 encoded serialized data in the database is extremely bad idea.

You have to redesign your database, getting rid of base64_encode and serialized data.
While using base64 with database makes absolutely no sense by any means, storing serialized data in the database is like mending an electronic device with stone hammer.

The main difference between database and ancient scroll of parchment is to give an individual access to whatever bit of information, and you are ruined that purpose completely, using stone-age way of storing data. Please, educate yourself and learn proper ways of using databases.

Database itself IS a perfect storage for the data structure from your example. You just have to add another table with fields date, amount, deposit and record_id and link that table to one that currently contains that base64 encoded array.

Do not store frequently updated data using any encode, serialize methods. You are actually storing the array in Encoded form, it is not serialized.

You will be having more problems issue with base64 Encoded arrays, You can not easily retrieve back them in the original form. base64_decode returns string back to you.

If the returned string is a valid array syntax you can still convert it back to array using eval. However, I would not recommend using this method.

If you needs to store array or object in database use the serialize method and while retrieving array, object back you can use the unserialize method on that.