【发布时间】:2014-03-22 20:37:43
【问题描述】:
我目前正在构建一个数据库处理程序。在 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 的要求,这是我在崩溃时从调试中得到的。崩溃会从运行 PHP 代码的 http 进程创建两个转储报告。
它们都包含大量信息。这里有很多东西要转储,但这里有一些例外。
转储 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
【问题讨论】:
标签: php database error-handling firebird