【发布时间】:2013-05-03 11:27:47
【问题描述】:
我有一个从 mysqldump 生成的 sql 转储。该文件包括特定于 mysql 版本的 cmets (/*!{MySQL version number} {Code} */)。
如果我在这个块之后插入一个 sql 语法错误,PDO 不会触发异常。
php代码
$sql = file_get_contents('FooBar.sql');
$pdo = new \PDO('mysql:host=localhost;dbname=FooBar', 'root');
$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$pdo->exec($sql);
FooBar.sql
/*!40101 SET @Foo='Bar' */;
ERROR
INSERT INTO Foo VALUES ('Bar');
执行此操作不会导致任何异常或错误。如果我删除 /*!40101 SET @Foo='Bar' */; 语句,或者将错误移到队列上,则会引发 PDOException。
【问题讨论】:
标签: php mysql pdo doctrine-orm doctrine