【发布时间】:2023-03-03 02:42:01
【问题描述】:
现在保存 base64_encode() 序列化数组后,我确实遇到了如何更新数据的问题
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
)
)
例如我想更新[deposit][2] 的值,其中[dates][2] 2012-03-18
我不知道如何更新 base64_encode() 序列化数组,这可能吗?
-> 在听取专家的回答后,我确实根据上校 Shrapnel 的建议更改了我的数据库结构,非常感谢所有回复
【问题讨论】:
-
大概你必须从数据库中获取数据,
base64_decode()它,反序列化,更改值,然后重新序列化,重新编码,更新数据库记录(s)。在关系数据库中的编码、序列化结构中查询没有明智的方法,更不用说更新它们了,这是您应该使用数据库的内置数据类型而不是针对它们的几个原因之一。 -
您需要提取数据、base64_decode、更新数组、base64_encode 并将其保存回数据库。当您在整个数据库中循环查找匹配记录时,可能是将数据存储更改为您将来可以查询的内容的好时机。
-
谢谢大家的回复,有示例代码吗?
-
有大量示例代码如何更新数据库中的字段。在这里提问之前请先做一些功课。社区将尊重这一点。