Die Lösung besteht darin sicherzustellen, dass Sie mysqlnd verwenden Treiber für php.
Woher wissen Sie, dass Sie nicht mysqlnd verwenden?
Beim Anzeigen von php -i
, gibt es keine Erwähnung von "mysqlnd". Die pdo_mysql
Abschnitt wird etwa so aussehen:
pdo_mysql
PDO Driver for MySQL => enabled Client API version => 5.1.72
Wie wird es installiert?
Die meisten Installationsanleitungen für L/A/M/P schlagen apt-get install php5-mysql
vor aber der native Treiber für MySQL wird von einem anderen Paket installiert:php5-mysqlnd
. Ich fand heraus, dass dies mit ppa:ondrej/php5-oldstable verfügbar war .
So wechseln Sie zum neuen Treiber (unter Ubuntu):
- Entfernen Sie den alten Treiber:
apt-get remove php5-mysql
- Installieren Sie den neuen Treiber:
apt-get install php5-mysqlnd
- Apache2 neu starten:
service apache2 restart
Wie überprüfe ich, ob der Treiber verwendet wird?
Jetzt php -i
wird "mysqlnd" explizit in pdo_mysql
erwähnen Abschnitt:
pdo_mysql
PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $
PDO-Einstellungen
Stellen Sie sicher, dass PDO::ATTR_EMULATE_PREPARES
ist false
(überprüfen Sie Ihre Standardeinstellungen oder setzen Sie sie):$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Stellen Sie sicher, dass PDO::ATTR_STRINGIFY_FETCHES
ist false
(überprüfen Sie Ihre Standardeinstellungen oder setzen Sie sie):$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
Zurückgegebene Werte
- Gleitkommatypen (FLOAT, DOUBLE) werden als PHP-Floats zurückgegeben.
- Integer-Typen (INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT †) werden als PHP-Integer zurückgegeben.
- Festkommatypen (DECIMAL, NUMERIC) werden als Strings zurückgegeben.
† BIGINTs mit einem Wert größer als ein 64-Bit-Int mit Vorzeichen (9223372036854775807) werden als Zeichenfolge zurückgegeben (oder 32 Bit auf einem 32-Bit-System)
object(stdClass)[915]
public 'integer_col' => int 1
public 'double_col' => float 1.55
public 'float_col' => float 1.5
public 'decimal_col' => string '1.20' (length=4)
public 'bigint_col' => string '18446744073709551615' (length=20)