Страницы

Поиск по вопросам

четверг, 11 июля 2019 г.

Тип данных в результатах выборки

Это нормально, что SELECT * FROM table всегда возвращает массив string, независимо от типа данных столбцов? Хотелось бы целые получать как int сразу, а не приводить к нужному типу уже в PHP.
Проверил результаты MySQLi, PDO, родной библиотеки CodeIgniter – везде массив строковых значений. Пытался найти в интернете, можно ли явно указывать тип в запросе, но не нашёл.


Ответ

Для РНР это в принципе нормально. И особо рассчитывать на строгую типизацию не стоит. К примеру, по НТТР к нам приходят только строки, и ничего кроме строк.
Но получать тип (особенно - NULL) из БД действительно бывает удобно. И новые API для работы с mysql этот функционал поддерживают.
Для этого нужно, чтобы PDO и mysqli были скомпилированы с поддержкой mysqlnd, о чем в соответствующих разделах вывода phpinfo() должна быть соответствующая запись.
Плюс, в некоторых случаях, для получения желаемого эффекта надо запрашивать результат с помощью подготовленных выражений.

Комментариев нет:

Отправить комментарий