我在 php 中序列化一些数组并将它们插入到 mysqlTEXT
列中。
一些数据被错误地插入。插入语句的示例,
$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 的理解是它会正确地转义所有字符以进行准备好的查询?
只是要注意我的 PDO 连接设置为UTF-8
?
我怎样才能阻止这种情况发生?
谢谢
编辑
我可以确认这是由于设置了与UTF-8
PDO 为何会这样做的任何想法的连接?