【发布时间】:2016-05-11 13:00:57
【问题描述】:
使用 PDO ASSOC 语句时,我只得到列的第一个字母,而不是完整的。有任何想法吗 ?更多信息如下:
通过 PHP 获取关联的小代码块:
$pdo = new PDO("xxx", "user","pwd");
$pdo->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING);
$query = $pdo->query("SELECT TRND.TRANID FROM PCRMTRND AS TRND");
$query->execute();
$tmp = array();
while($row=$query->fetch(PDO::FETCH_ASSOC)) {
array_push($tmp,$row);
}
填充数组 tmp 后:
Var DUMP 每一行:
ODBC 设置:
[xxx]
Description = iSeries ODBC
Driver = IBM i Access ODBC Driver
System = /
UserID =
Password =
Naming = 0
DefaultLibraries = QGPL
Database =
ConnectionType = 0
CommitMode = 2
ExtendedDynamic = 1
DefaultPkgLibrary = QGPL
DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512
AllowDataCompression = 1
LibraryView = 0
AllowUnsupportedChar = 0
ForceTranslation = 0
Trace = 0
【问题讨论】:
-
为什么要将结果添加到数组中而不是回显出来?您确定您的代码旨在测试您描述的行为吗?
-
是的。我只是将所有结果添加到一个数组中。我可以在调试中看到数组只有一个键字母
-
很遗憾,我们看不到它。为了获得帮助,您需要提供您正在使用的代码以及您拥有的实际输出
-
我已经对帖子进行了更多编辑,但我猜这是 PHP INI 中的配置选项或 ODBC 中的设置。
-
这张照片是什么?你不能只做
$row=$query->fetch(PDO::FETCH_ASSOC); var_dump($row);并检查输出吗?
标签: php pdo ibm-midrange unixodbc