【发布时间】:2012-05-21 19:29:24
【问题描述】:
以下代码在 PHP 5.4 和 5.2.13 之间是否存在显着差异?它适用于 PHP 5.4 (& mysql 5.1.62),不显示错误并执行查询。但是对于 5.2.13 (& mysql 5.1.3.0) 它不会显示任何错误(它不会落入 catch 块)但数据不会插入到数据库中
$db = new PDO(DHOST, DUSER, DPASS, array(PDO::ATTR_PERSISTENT => true, PDO::ATTR_EMULATE_PREPARES => true));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
try {
$db->beginTransaction();
$db->exec($insertString);
$db->commit();
} catch (Exception $e) {
try {
$db->rollBack();
throwDbError($handler->errorInfo());
} catch (Exception $e2) {
...
}
}
如果我省略了beginTransaction 和commit 的行,它也适用于 PHP 5.2,但我需要事务。 mysql 数据库中的两个表都在使用 InnoDB
【问题讨论】:
-
DB_DAO::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);这一行看起来很可疑。 5.4 可能是使用异常错误模式吗? -
对不起,旧代码片段