Выход php -i | grep mysqlnd
является:Mysqlnd родной драйвер не работает, даже если загружен
Client API версии => mysqlnd 5.0.11-DEV - 20120503 - $ Id: 40933630edef551dfaca71298a83fad8d03d62d4 Клиент библиотеки API версии => mysqlnd 5.0.11-DEV - 20120503 - $ Id: 40933630edef551dfaca71298a83fad8d03d62d4 mysqlnd mysqlnd => включен Version => mysqlnd 5.0.11-DEV - 20120503 - Id: 40933630edef551dfaca71298a83fad8d03d62d Loaded плагины => mysqlnd, debug_trace, auth_plugin_mysql_native_password, auth_plugin_mysql_clear_password статистика mysqlnd => Client API версии => mysqlnd 5.0.11-DEV - 20120503 - $ Id: 40933630edef551dfaca71298a83fad8d03d62d4
Который предполагает, что загружен mysqlnd => enabled
однако все значения в базе данных все еще поступают, как строки, не преобразуются в собственные типы PHP:
$connection = new mysqli('127.0.0.1', 'root', '', 'my_database');
// Settings contains one tinyint field 'enabled'
$result = mysqli_query($connection, 'select * from settings');
var_dump(mysqli_fetch_array($result));
Результат
array (size=1)
'enabled' => string '1' (length=1)
Ожидаемое
array (size=1)
'enabled' => int 1
Am I отсутствуют некоторые конфигурации/предложения?
Так покажите нам кусок кода и сообщения об ошибке, пожалуйста, есть :-) – Alex
@KimAlexander я добавил некоторый код. Не очень много для этого. Драйвер mysqlnd должен автоматически конвертировать в типы данных PHP, где это возможно, но это не так. Они все еще выходят как строки, хотя в соответствии с PHP mysqlnd загружен и включен. –
вы всегда получите строки, я думаю, что причина в том, что родной SQL-движок, когда он возвращает данные, нет никакой дополнительной информации о каждом столбце, просто данные. так что это всегда строки, либо для datestamp. Вы видели какую-либо другую информацию через Интернет? если вы видели какой-либо пример, если php-код показывает, что mysqli возвращает INT или DATE формально - покажите мне пожалуйста :-) – Alex