2016-09-09 2 views
3

Я следующий код на PHP скрипт:MeekroDB и PDO обратный запрос ассоциативный массив с только строками

$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 уважение типы данных, назначенные в модели базы данных?

UPDATE

Также попытался с ПДО с тем же результатом, что кажется, что это не 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); 

UPDATE

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

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 
    } 
} 

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

+0

Извините, не могли бы вы объяснить, какой результат вы ожидаете? – jaro1989

+0

@ jaro1989 Ассоциативный массив должен иметь тот же тип данных, определенный в базе данных. (обновленный вопрос) – supercoco

+0

, так что .. это дубликат этого вопроса: http://stackoverflow.com/questions/16129432/why-not-pdo-mysql-return-integer – jaro1989

ответ

1

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

С PDO, возможно только if PDO is built upon mysqlnd and emulation mode is turned off. Имея там предварительные условия, вы можете иметь свои результаты уже в соответствующих типах

 Смежные вопросы

  • Нет связанных вопросов^_^