我在php中序列化一些數組,並將它們插入到mysql TEXT
列中。Mysql PDO沒有正確插入序列化的PHP數據(切斷'符號)?
某些數據被嚴重插入。 INSERT語句的一個例子,
$q = $this -> dbc -> prepare("INSERT INTO table (files) VALUES(?)");
$q -> execute(array(serialize($files)));
的$files
陣列的strlen
值小於6.5,因此沒有得到剪短,因爲最大插入到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像任何想法的連接?
每個UTF-8字符最多可能需要3個字節http://stackoverflow.com/a/4420195/329062 – Greg