De oplossing is ervoor te zorgen dat u de mysqlnd . gebruikt stuurprogramma voor php.
Hoe weet je dat je mysqlnd niet gebruikt?
Bij het bekijken van php -i
, er is geen vermelding van "mysqlnd". De pdo_mysql
sectie zal zoiets als dit hebben:
pdo_mysql
PDO Driver for MySQL => enabled Client API version => 5.1.72
Hoe installeer je het?
De meeste installatiehandleidingen voor L/A/M/P suggereren apt-get install php5-mysql
maar de native driver voor MySQL wordt geïnstalleerd door een ander pakket:php5-mysqlnd
. Ik ontdekte dat dit beschikbaar was met de ppa:ondrej/php5-oldstable .
Overschakelen naar het nieuwe stuurprogramma (op Ubuntu):
- Verwijder het oude stuurprogramma:
apt-get remove php5-mysql
- Installeer het nieuwe stuurprogramma:
apt-get install php5-mysqlnd
- Herstart apache2:
service apache2 restart
Hoe controleer ik of het stuurprogramma wordt gebruikt?
Nu php -i
zal "mysqlnd" expliciet vermelden in de pdo_mysql
sectie:
pdo_mysql
PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $
BOB-instellingen
Zorg ervoor dat PDO::ATTR_EMULATE_PREPARES
is false
(controleer uw standaardwaarden of stel deze in):$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Zorg ervoor dat PDO::ATTR_STRINGIFY_FETCHES
is false
(controleer uw standaardinstellingen of stel deze in):$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
Geretourneerde waarden
- Floating-point types (FLOAT, DOUBLE) worden geretourneerd als PHP floats.
- Gehele getallen (INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT †) worden geretourneerd als gehele PHP-getallen.
- Typen met vaste punten (DECIMAAL, NUMERIEK) worden geretourneerd als tekenreeksen.
† BIGINT's met een waarde groter dan een 64-bits ondertekende int (9223372036854775807) worden geretourneerd als een tekenreeks (of 32 bits op een 32-bits systeem)
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)