我需要运行插入和同步更新,但我只使用插入测试来捕获错误。
当我定义正确和不正确的表时,PDO不报告错误,但如果我运行查询以选择一个错误的表,则会报告错误。
我没有足够的知识来解决这个问题,我真的需要一起执行两个查询
谢谢。
。
$db-> setAttribute( PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION );
try{
$stmt = $db-> prepare( "INSERT INTO test ( name ) values( 'new name' );
INSERT INTO xast ( xame ) values( 'new name' );" );
$stmt->execute();
}catch( PDOException $e ){
print_r( $e );
}
try{
$stmt = $db-> prepare( "INSERT INTO xast ( xame ) values( 'new name' );" );
$stmt->execute();
}catch( PDOException $e ){
print_r( $e );
}
**Column not found: 1054 Unknown column 'xame'**
答案 0 :(得分:2)
在您的案例中准备多个查询毫无意义。
首先,专门为罐子发明的准备好的陈述:准备一次,执行许多。所以,你可以这样做准备
INSERT INTO test (name) values(?)
然后执行尽可能多的插入次数
下一步。对于INSERT查询,Mysql在一个查询中支持多个VALUES子句,如
INSERT INTO test (name) values ('new name' ),('name'),(...)
等等。
如果您需要在插入后更新 - 也没问题。
只需运行2个单独的查询 - 一个INSERT和一个UPDATE。没有一个问题。
答案 1 :(得分:0)
此(此链接:PDO support for multiple queries (PDO_MYSQL, PDO_MYSQLND))解决方案可帮助您一起运行多个查询, 如果查询不正确,则不会执行任何其他查询。