Problem
我们告诉 PDO 将每个问题包装到异常中。
在某些情况下,它会生成一些警告,然后才抛出异常。
Why它能做到吗?
重复?
SO 上没有关于它的正确答案。最后一个问题是MySQL 上的 PHP PDO 异常 + 警告消失了?但人们只是将其标记为重复,而不是仔细回答。
接受的答案没有回答为什么这样做以及何时这样做。所以我研究了一下并回答。
这是因为 PDO 可以使用 mysqlnd 驱动程序,该驱动程序不遵守任何 PDO 的“将问题转换为扩展”策略。
看看mysqlnd 驱动程序的来源.
我们清楚地看到有直接调用php_error_docref
.
示例之一,如下所示上一个问题通过这些行解释:https://github.com/php/php-src/blob/PHP-5.5.31/ext/mysqlnd/mysqlnd_wireprotocol.c#L35:L61
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)