php - 插入序列化值时出现语法错误?

标签 php mysql serialization

我的代码:

 $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 . "')
        ");

关于php - 插入序列化值时出现语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6141582/

相关文章:

java - 反序列化时抛出 ClassNotFoundException

PHP 写 stdClass 的另一种方式

javascript - 如何删除base64图像字符串

javascript - 我如何通过nodejs返回获取mysql json

php - 如果现有范围内不存在给定数字,则插入记录

java - Android 序列化 PendingIntent

php - Android - Web 服务器连接和身份验证

php - 将包含多个变量的 URL 作为参数发送到另一个页面

c# - mysql表转化为List

java - 动态序列化/反序列化