问题描述
|
我的代码:
$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,您的序列化数组不会转义。