Pascal's answer doğrudur. Ben biraz sorun tüm iş yapmak vardı. İşte yapmanız gerekenler.
İlk olarak, mysqlnd kurulu ve etkin olduğundan emin olun. php --info
bak. Pdo_mysql bölümünde, gibi görünmelidir:
pdo_mysql
PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.8-dev - 20102224 - $Revision: 321
Yerine istemci API sürümü mysqlnd
görme, sizin gibi bir satır görürseniz ...
Client API version => 5.5.29
... Sonra mysqlnd yüklü ve gidiş yok. Önce o ilgilenir.
İkincisi, PDO taklit hazırlanmış deyimleri by default for all MySQL bağlantılarını kullanır. Gülünç, ama orada olduğunu. Ve sen (şimdi here olan bağlantılı blog yazısı "sunucu tarafı hazırlanan tablolar" denir) gerçek hazırlanmış deyimleri kullanmak yalnızca yerel veri türlerini alacak. Yani senin gibi, false PDO :: ATTR_EMULATE_PREPARES ayarlamanız gerekir:
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Son olarak, true PDO :: ATTR_STRINGIFY_FETCHES set değil emin olun.
$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);