gpt4 book ai didi

php - 无法将序列化数据保存到MySQL中

转载 作者:行者123 更新时间:2023-11-29 09:00:07 27 4
gpt4 key购买 nike

这是我的代码中的内容,我没有看到我的代码有什么问题,但我无法弄清楚为什么它不会保存在数据库中。

我的阵列详细信息

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
)

)

我的保存代码

$sql = "INSERT INTO transaction (id, details)
VALUES('$id', $serializeddetails)";

$query = mysql_query($sql) or die("Fatal error: ".mysql_error());

我收到了这个错误

Fatal error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a:3:{s:5:"dates";a:6:{i:0;s:10:"2012-01-18";i:1;s:10:"2012-02-18";i:2;s:10:"2012' at line 2

我使用了 longtext 作为我的数据类型,并尝试了 longblob 但没有希望,

我也尝试使用base64_ecode();

$serializeddetails = base64_encode(serialize($detailsarray));

并收到此错误

Fatal error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 2

我的代码出了什么问题,为什么它不会保存到数据库中?

谢谢

最佳答案

$sql = "INSERT INTO transaction (id, details)
VALUES('$id', '$serializeddetails')";

$serializeddetails 是一个字符串,因此您需要引号。还要确保序列化数据被转义。我想到了mysql_real_escape_string()addslashes()。这对于您的测试数据来说不是必需的(序列化后不包含单引号),但对于其他数据来说可能是必需的。

关于php - 无法将序列化数据保存到MySQL中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8898107/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com