PHP:obdc_exec() 在 Zend 模型中静默失败

Posted

技术标签:

【中文标题】PHP:obdc_exec() 在 Zend 模型中静默失败【英文标题】:PHP: obdc_exec() fails silently in a Zend Model 【发布时间】:2012-01-26 02:51:21 【问题描述】:

我正在尝试通过 ODBC 连接到 Netezza 数据库(不是很重要)。

重要的是我正在尝试将手动 odbc 调用包装在 Zend 模型中。 Zend 没有 ODBC 适配器。我发现一个最终遇到了我现在遇到的同样问题,所以我希望这是同样的问题,如果我得到解决,我可以放弃手动黑客。我也尝试了一个 PDO 对象,但它也有同样的问题。

所以代码是这样的(带有明显伪造的参数供公众查看):

$conn = odbc_connect('dsn','username','password');
$sql = "SELECT site_name FROM sites";
$test = odbc_exec($conn, $sql) or die(odbc_errormsg());
echo "Made it this far.";

问题是:当我将这四行粘贴到一个独立文件中时,它可以工作,最后一行会回显。然后,我实际上可以从 $test 中提取数据并将其吐出。但是,如果我将这四行粘贴到自定义模型中的方法中,odbc_exec() 会静默失败。最后一行没有回声。正在建立连接并且 $conn 完全是一种资源,但它只是在 odbc_exec() 期间停止。如果它是一个巨大的查询,它会花费很长时间然后停止/失败/什么都不做。

我不知道为什么会这样,我快疯了。 Zend 根本不应该搞砸这个,这些行是完全独立的。

任何帮助将不胜感激,谢谢。

【问题讨论】:

php 错误日志中是否出现任何内容? 在 error_log 中发现:[Thu Jan 26 12:43:13 2012] [notice] child pid 28979 exit signal Segmentation fault (11), possible coredump in /var/tmp/core 这显示每次我尝试运行脚本时。 只是猜测-也许尝试检查转储?就像在serverfault.com/questions/297688/… 中一样,或者尝试让 memry_limit 更高? memory_limit 已经是 512M... PHP 之前曾口头向我抱怨过内存限制太小,我想它会再做一次。我会检查转储。 【参考方案1】:

我刚刚解决了一个类似的问题。将 unix_odbc 和 PHP 更新到最新,它就像一个魅力。

【讨论】:

以上是关于PHP:obdc_exec() 在 Zend 模型中静默失败的主要内容,如果未能解决你的问题,请参考以下文章

Zend 中的 PHP 数据对象

Zend 模型类 - 选择被声明为静态方法的查询

Zend Framework,FusionCharts,PHP,Javascript

php 怎么用zend加密

Zend Framework错误:无法打开所需的'Zend / Application.php'

Zend 中的每个表都必须映射到自己的类吗?