我正在序列化php中的一些数组,并将它们插入mysql TEXT列中。
有些数据插入得很糟糕。插入语句的一个示例,
$q = $this -> dbc -> prepare("INSERT INTO table (files) VALUES(?)");
$q -> execute(array(serialize($files)));strlen数组的$files值小于65,000的值,因此由于对TEXT mysql列的最大插入,它不会被缩短。
插入前的serialized($files)数据,
string 'a:4:{s:4:"CD 1";a:20:{s:32:"01 - Can´t Talk To That Girl.mp3";i:4558470;s:22:"02 - No Pla // CONTINUES FOR SOME TIME从数据库中获取的$files值,
a:4:{s:4:"CD 1";a:20:{s:32:"01 - Can它似乎缩短了字符´,我对它的理解是,它将正确地转义所有字符为准备的查询?
请注意,我的PDO连接被设置为UTF-8
我怎么才能阻止这一切的发生?
谢谢
编辑
我可以确认这是由于设置了与UTF-8的连接,对于为什么PDO会这样做有什么想法吗?
发布于 2012-06-13 05:03:45
发布于 2012-06-13 02:47:07
试着不要深入到编码兔子洞的字符中去;通过确保你的字符串是UTF-8,你会有更多的运气吗?
$q = $this -> dbc -> prepare("INSERT INTO table (files) VALUES(?)");
$q -> execute( array( utf8_encode( serialize( $files ) ) ) );https://stackoverflow.com/questions/11007348
复制相似问题