加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MySql > 正文

php – 使用引号保存到MySQL序列化信息

发布时间:2020-05-27 14:28:00 所属栏目:MySql 来源:互联网
导读:试图将序列化的字符串保存到SQL,但后来我因为引号而无法将其反序列化.例如,字符串是“test”,序列化后我们有s:5:test; 但要将其保存到SQL,我们需要添加斜杠,而我正在做serialize(addslashes($string)) 在此之后,在我们的MySQL数据库中我们有s:6:test; 这就是

试图将序列化的字符串保存到SQL,但后来我因为引号而无法将其反序列化.

例如,字符串是“te’st”,序列化后我们有

s:5:"te'st";

但要将其保存到SQL,我们需要添加斜杠,而我正在做

serialize(addslashes($string))

在此之后,在我们的MySQL数据库中我们有

s:6:"te'st";

这就是问题所在. s:6表示我们有6个符号字符串,但我们的“te’st”只有5,所以当我们尝试反序列化时,我们会收到错误.

怎么解决?尝试了htmlspecialchars和mysql_real_escape_string

更新:

我如何使用mysql_real_escape_string

 mysql_query("INSERT INTO `table`(`string`) VALUES ('" . serialize(array('iId' =>$aSqlResult['typeID'],'sName' => mysql_real_escape_string($sScanResultLine))) . "')");
最佳答案 您应该在序列化之后通过escape函数传递数据,而不是之前 – 这就是您现在正在做的事情.

$serialized = mysql_real_escape_string(serialize($data));

使用PDO或MySQLi的参数化查询,您可以完全忘记转义.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读