Mærkeligt nok er PHP-pakkerne leveret af Ubuntu ikke kompileret med Native Mysql-driver , men med den gamle libmysqlclient i stedet (testet på Ubuntu 13.10 med standardpakker):
<?php
echo $dbh->getAttribute(PDO::ATTR_CLIENT_VERSION); // prints "5.5.35", i.e MySQL version
// prints "mysqlnd (...)" when using mysqlnd
Din selve testcase ("Rediger 4", med setAttribute(MYSQL_ATTR_USE_BUFFERED_QUERY, true)
) fungerer som forventet med PHP 5.5.3 manuelt kompileret med mysqlnd med:
./configure --with-pdo-mysql=mysqlnd # default driver since PHP v5.4
... men fejler med:
bash> ./configure --with-pdo-mysql=/usr/bin/mysql_config
Det er ret mærkeligt, at det kun mislykkes, hvis den første sætning udføres to gange; dette må være en fejl i libmysqlclienten chauffør.
Begge drivere fejler som forventet, når MYSQL_ATTR_USE_BUFFERED_QUERY
er false
. Din sunde fornuft er allerede demonstreret
hvorfor dette er forventet adfærd, uanset antallet af rækker i resultatsættet.
Mike fandt ud af, at den aktuelle løsning er at installere php5-mysqlnd
pakke i stedet for den Canonical-anbefalede php5-mysql
.