MeekroDB и запрос PDO возвращают ассоциативный массив с ТОЛЬКО строками

У меня есть следующий код на PHP-скрипте:

$DB = new MeekroDB($host, $user, $pass, $dbIntra, $port, $encoding);
$DB->throw_exception_on_error = true;
$DB->error_handler = false;
$DB->throw_exception_on_nonsql_error = true;

$result = $DB->query("SELECT usr_id, usr_username, usr_blocked, usr_language, usr_nickname, entc_id FROM usuario LIMIT 1");

var_dump($result);

В результате чего следующее:

array(1) {
[0]=>
array(6) {
["usr_id"]=>
string(1) "1"["usr_username"]=>
string(12) "[email protected]"["usr_blocked"]=>
string(1) "0"["usr_language"]=>
string(2) "ES"["usr_nickname"]=>
string(5) "Ivan1"["entc_id"]=>
string(1) "1"}
}

Есть ли способ заставить MeekroDB уважать типы данных, назначенные в модели базы данных?

ОБНОВИТЬ

Также пробовал с PDO с тем же результатом, кажется, это не MeekroDB, а PHP:

$dbh = new PDO('mysql:host=...;dbname=...', $user, $pass);
$query="SELECT usr_id, usr_username, usr_blocked, usr_language, usr_nickname, entc_id FROM usuario LIMIT 1";
$data = $dbh->query($query);
$result = $data->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);

ОБНОВИТЬ

Я бы ожидал что-то вроде этого:

array(1) {
[0]=>
array(6) {
["usr_id"]=>
int(1) 1                          // Notice int
["usr_username"]=>
string(12) "[email protected]"["usr_blocked"]=>
int(1) 0                          // Notice int
["usr_language"]=>
string(2) "ES"["usr_nickname"]=>
string(5) "Ivan1"["entc_id"]=>
int(1) 1                          // Notice int
}
}

Ассоциативный массив должен иметь тот же тип данных, который определен в базе данных.

3

Решение

С Meekro вы не можете получить типизированные результаты, так как он не использует подготовленные операторы — единственный способ получить тип данных прямо из выборки.

С PDO возможно только если PDO построен на mysqlnd и режим эмуляции включен от. Имея там предпосылки, вы можете иметь свои результаты уже в соответствующих типах

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]