PHP MySQL PDO::exec 不会引发或抛出多命令脚本的错误

标签 php mysql sql pdo

当执行多命令脚本时(例如,一些 CREATE TABLE 命令和可能的一些 INSERT 命令),特别是对于 PHP 的 MySQL PDO 驱动程序,即使脚本包含语法或逻辑错误,返回值始终为 0(没有任何错误信息)。

这可以防止您运行较长的构建脚本,然后检查脚本是否成功执行。如果发生错误,进程在脚本失败的地方终止,但仍然存在 0 并且没有错误信息。

我已经在这个网站和网上搜索过这个问题的答案,似乎普遍的回答是“你对此无能为力”。我当前的解决方案是运行一个“验证构建”查询来检查一些数据并评估对此的响应 - 这似乎非常低效。

有人遇到过这个问题吗?如果是这样,您如何确保构建脚本成功执行?

最佳答案

感谢大家的回答——我没有找到解决这个问题的方法,而是最终使用了 Doctrine,它与数据库迁移很好地结合在一起。

关于PHP MySQL PDO::exec 不会引发或抛出多命令脚本的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7598888/

相关文章:

php - 如何从另一个 WordPress 站点获取 WP_User 对象或用户元?

mySQL语句获取最后一条记录

sql - 更新另一个表中 hstore 列中的现有行

php - OOP 中的 Cookie 检查

mysql - 按行显示配置文件内容

mysql - MySQL返回 “Too many connections”错误

php - 如何以不同的顺序显示记录

php - 包含 AS 的 SQL SELECT 语句

php - CakePHP 3 中的内部联接不返回任何行

javascript - 在同一页面上将 Javascript 变量传递给 php