PHP call_user_func_array不会捕获数据库错误

时间:2014-02-21 11:02:38

标签: php database error-handling firebird

我目前正在构建数据库处理程序。在Firebird数据库之上运行PHP 5.4.16。

当我做了一个准备好的语句时,我需要用参数执行SQL。我做了这个功能:

private function assignParameters($args)
{
    return call_user_func_array('ibase_execute',$args);
}

问题是当我在args中出错(没有给出预期的值)时,我希望返回给出false(错误)。发生错误时,ibase_execute通常会返回false。

但是现在我的PHP安装(XAMPP)只是崩溃并重新启动。我尝试过使用try / catch而没有任何运气。 call_user_func_array不会失败,但我希望它会从ibase_execute返回结果。我很困惑。

我应该提一下,PHP / Apache错误日志中没有条目。唯一的条目是Apache2服务器已重新启动。

来自phpinfo();

的interbase配置
Firebird/InterBase Support  dynamic
Compile-time Client Library Version Firebird API version 25
Run-time Client Library Version WI-V6.3.2.26539 Firebird 2.5

任何想法 - 驱动程序崩溃了吗?

修改

根据Mariuz的要求,这是我在崩溃时从调试中得到的。崩溃从http进程创建两个转储报告,其中运行PHP代码。

它们都包含很多信息。要在这里倾倒多少,但这里是例外。

转储1

Exception Information
In httpd__PID__10168__Date__02_21_2014__Time_03_40_11PM__949__Second_Chance_Exception_C0000008.dmp the assembly instruction at 0x76ed12c7 which does not correspond to any known native module in the process has caused an unknown exception (0xc0000008) on thread 0

转储2

Exception Information
MSVCR80!UNWINDUPVEC+50In httpd__PID__10064__Date__02_21_2014__Time_03_40_05PM__321__Second_Chance_Exception_C0000005.dmp the assembly instruction at msvcr80!UnwindUpVec+50 in C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\msvcr80.dll from Microsoft Corporation has caused an access violation exception (0xC0000005) when trying to read from memory location 0x00000000 on thread 5

1 个答案:

答案 0 :(得分:0)

这似乎是php中的段错误请提供脚本和回溯

https://bugs.php.net/bugs-generating-backtrace-win32.php