无法保存php序列化字符串,错误“;”分号char

时间:2014-03-18 12:58:13

标签: php mysql serialization

我正在尝试将SQL文件导入MySQL Server 5.5,但我一直收到此错误:

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:10:{i:0'

这是查询:

insert into `preferences` values ('system','active_plugins','a:10:{i:0;s:16:\"voting/index.php\";i:1;s:26:\"social_bookmarks/index.php\";i:2;s:25:\"profile_picture/index.php\";i:3;s:26:\"lz_theme_options/index.php\";i:4;s:21:\"google_maps/index.php\";i:5;s:17:\"youtube/index.php\";i:6;s:18:\"facebook/index.php\";i:7;s:23:\"lz_demo_theme/index.php\";i:8;s:25:\"cars_attributes/index.php\";i:9;s:20:\"lz_firephp/index.php\";}','STRING'),

所以我认为这是一些编码问题,因为它在分号上抛出错误,所以我检查了,一切都是utf-8。最奇怪的是,如果我通过phpmyadmin或navycat甚至mysqlworkbench运行相同的查询,则只会在服务器处理错误时抛出错误。

1 个答案:

答案 0 :(得分:0)

好的,所以我发现问题是什么,不是mysql,不是php,没有隐藏的字符,因为我正在处理一个开源的cms,而且这段代码是用于cms的插件,我正在使用cms本身用于导入同一文件的现有方法,我已经看到了方法meny次,并且知道它必须在单独的查询中打破大sql文件而不是运行每个查询,并且它在每个“;”上打破sql,所以它也打破了部分序列化的字符串,这就是为什么我得到这个:

''a:10:{i:0'

作为错误,查询结束时,不应该。

非常感谢所有的帮助,希望我缺乏关注服务器的其他人! RSRS