Я хотел бы использовать незаготовленные заявления, используя mysqli в PHP, и сохранить тип данных SQL.
Сравнительная таблица на этой странице на php.net предполагает, что это можно сделать:
Результирующие установленные значения Типы данных SQL
Подготовленное выражение: сохраняется при извлечении
Неподготовленный оператор: преобразован в строку или сохраняется при извлечении
Что означает выборка?
В настоящее время в коде, таком как следующие значения столбца, все строки. Есть ли способ сохранить тип данных без использования подготовленных операторов?
$conn = new mysqli('db_host', 'db_username', 'db_password', 'db_name');
$conn->set_charset('db_charset');
$result = $conn->query($sql, MYSQLI_USE_RESULT);
$row = $result->fetch_assoc();
NB. небуферизованный запрос
С тех пор я нашел вариант mysqli MYSQLI_OPT_INT_AND_FLOAT_NATIVE
который преобразует числовые столбцы в int
или float
(boolean columns становятся int
).
Я не уверен, что это то, о чем упоминалось в документации php.net, или если есть другой метод.
Пример:
$conn->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);