使用 PDO 连接到 MS Access 文件时出现 EOF 错误(是的,对我来说也没有意义)

问题描述 投票:0回答:0

我有一个 PHP 脚本,曾经 工作,但在过去的几个月里,它开始在两台不同的机器上失败。截至 10 月 26 日,我当前的开发环境是一台 64 位 Windows 10 机器,配备 64 位 PHP 7.2.31(根据 phpinfo,PDO 和 PDO_ODBC 均处于活动状态)、64 位 MS Access 2016、FastCGI与 IIS 10 一起运行,并安装了最新的 Visual C++ 可再发行组件。我有一个标准的、以前功能性的连接字符串到一个存储为 $connectionString 的 Access .accdb 文件以提供给 PDO,当我运行命令时

$this->connection = new PDO($connectionString);

我收到可怕的 500 错误提示“FastCGI 进程意外退出”。

我已经检查了 PHP 日志记录(我已经通过临时引入语法错误确认了它的工作)并且不出所料,FastCGI 错误没有留下足迹。更重要的是,我查看了 IIS 生成的失败请求跟踪日志文件。它准确地反映了发送到调用注定的代码位的 PHP 脚本的 POST 请求的内容,之后日志显示一个没有错误代码的 GENERAL_REQUEST_ENTITY 事件、一个 NOTIFY_MODULE_COMPLETION 事件,然后是一个返回错误代码的 GENERAL_READ_ENTITY_START 事件2147942438,或十六进制 0x80070026,“已到达文件末尾”的标准 Windows 错误。然后一切都跳转到官方 500 错误屏幕,显示“C:\Program Files\PHP 7.2.31\php-cgi.exe - FastCGI 进程意外退出”消息。

如果我

exit;
new PDO()
调用之前退出我的代码,则没有错误,所以这显然是罪魁祸首,但我不知道 PDO() 调用如何导致“文件结束”错误。对接下来要看的地方有什么建议吗?我会注意到机器的最后一个主要变化是更新 MS Office,但由于没有任何与 Access 相关的错误消息,我看不出这适合在哪里。

php pdo fastcgi ms-access-2016
© www.soinside.com 2019 - 2024. All rights reserved.