使用 PDO Informix 的 informix 数据始终以字符串形式返回,只有 NULL 才以 NULL 形式返回。
我尝试过玩
$pdo_conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo_conn->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
没有成功。另外,当我尝试时
$pdo_conn->getAttribute(PDO::ATTR_STRINGIFY_FETCHES);
我收到 PHP Fatal error: Uncaught PDOException: SQLSTATE[IM001]: Driver does not support this function: driver does not support that attribute
我用
$prep = $pdo_conn->prepare($query);
$prep->execute();
$result = $prep->fetchAll(PDO::FETCH_ASSOC);
有人知道如何使用 pdo informix 将我的 float 作为 float 吗?
谢谢, 阿里。
最佳答案
Informix PDO 驱动程序以 PDO_PARAM_STR 形式返回所有内容(作为 PDO_PARAM_LOB 返回的 CLOB 除外)。
与 PDO_ODBC 相同,对于结果集中的每一列,驱动程序使用 SQL_C_CHAR 进行内部 SQLBindCol ODBC 调用。
ATTR_STRINGIFY_FETCHES 属性的值没有任何区别,因为返回的数据类型已经是字符串。 您可以查看驱动源代码(第653行左右):
https://github.com/php/pecl-database-pdo_informix/blob/master/informix_statement.c
关于php pdo informix 以字符串或 NULL 形式返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61814342/