Соедините impala с odbc и php pdo, строковые поля пусты

Когда я использую только odbc, все работает успешно

$dsn = "DSN=DingdongImpala;host=172.168.1.100;port=21050;database=mmdb;";
$user = '';
$password = '';
$conn = odbc_connect($dsn, $user, $password);
$result = odbc_exec($conn, "select succount,failedcount,appid from t_mm_acc_date limit 1");
while($row = odbc_fetch_array($result)) {
print_r($row);
}

Результат:

Array
(
[succount] => 0          //int
[failedcount] => 1       //int
[appid] => 202361        //string
)

Но когда я использую pdo для доступа к odbc, поля типа String все пусты

$dsn = "odbc:DSN=DingdongImpala;Host=172.168.1.100;Port=21050;database=mmdb;";
$user = '';
$password = '';
$cnx = new PDO($dsn, $user, $password);
$result = $cnx->query("select succount,failedcount,appid from t_mm_acc_date limit 1");
print_r($result->fetchObject());

Результат:

stdClass Object
(
[succount] => 100       //int
[failedcount] => 0      //int
[appid] =>              //string, empty
)

Я пробовал много случаев, пока я выбираю поле String из impala, результат будет пустым, но поля int являются нормальными.
Моя системная среда:

centos 6
PHP 5.3.6
php-odbc-5.3.3
unixODBC-2.2.14
ClouderaImpalaODBC-2.5.29.1009-1.el6.x86_64.rpm

2

Решение

Я столкнулся с той же проблемой, что и в качестве обходного пути, я приводил строковые поля к varchar, например так:

select succount, failedcount, cast(appid as varchar(255)) from t_mm_acc_date limit 1
0

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

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

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