如何解决插入序列化值时出现Snytax错误?
| 我的代码: $meta_ar = array(\"event_id\" => $event_id,\"user_id\" => $user_id,\"dbe\" => $dbe,\"hbe\" => $hbe,\"forum_id\" => \'dummy_forum\');
$meta_ar = serialize($meta_ar);
$db->query_write(\"
INSERT INTO \" . TABLE_PREFIX . \"event_mod
(event_meta)
VALUES
(\" . $meta_ar . \")
\");
错误:
Invalid SQL:
INSERT INTO event_mod
(event_meta)
VALUES
(a:5:{s:8:\"event_id\";N;s:7:\"user_id\";s:1:\"1\";s:3:\"dbe\";i:45;s:3:\"hbe\";i:32;s:8:\"forum_id\";s:11:\"dummy_forum\";});
MySQL 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 \':5:{s:8:\"event_id\";N;s:7:\"user_id\";s:1:\"1\";s:3:\"dbe\";i:45;s:3:\"hbe\";i:32;s:8:\"fo\' at line 4
Error Number : 1064
任何想法?
解决方法
将其更改为单引号中包含的值。
当您将任何字符串传递给应该保存字符串值的任何列时,则必须将其括在引号中。
$db->query_write(\"
INSERT INTO \" . TABLE_PREFIX . \"event_mod
(event_meta)
VALUES
(\'\" . $meta_ar . \"\')
\");
,使用PreparedStatement,您的序列化数组不会转义。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。