gpt4 book ai didi

PHP odbc_result() 似乎在 5.5+ 中为 varchar 字段返回随机未初始化的内存;在 5.4 中工作的相同代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:34:51 25 4
gpt4 key购买 nike

我正在使用 ODBC 连接来检索 Windows 服务器上的数据。将 PHP 从 5.4 升级到 5.6(以及 5.5)后,所有 varchar 字段似乎都返回随机未初始化的内存,尽管字符串长度与被查询字段的长度匹配。

例如,在 5.4 中返回字符串“Test.txt”的查询在 5.5+ 中返回以下内容:

garbled

我已经比较了两个版本之间的 php.ini 设置,它们在与字符集和 ODBC 设置相关的具体内容方面似乎是相同的。

我可以同时在同一个 ODBC 资源上并排运行两个版本并获得这些结果。日期和整数等非 varchar 字段打印正确。我只是运行从 http://windows.php.net/download 下载的 x86 线程安全 php.exe 可执行文件适用于 5.4、5.5 和 5.6。

我还可以配置什么来尝试解决这个问题?

编辑:我正在使用统一的 ODBC 函数,如下所示:

$o = odbc_connect("Driver=MMODBC;Server=localhost;Database=odbc_mapping;", [user], [pass]);
$r = odbc_exec($o, "SELECT * FROM Table");
while (odbc_fetch_row($r)) {
print odbc_result($r, 1);
}

最佳答案

http://bugs.php.net 有一些错误与出现在 odbc 函数结果中的未初始化数据相关。它们主要用于旧版本(例如 5.3)的 php。这似乎就是这种情况下发生的情况,或者其中的一些变体。

在 5.6 中切换到 PDO 已经完全解决了我的问题。

关于PHP odbc_result() 似乎在 5.5+ 中为 varchar 字段返回随机未初始化的内存;在 5.4 中工作的相同代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37756148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com