pdo执行多个查询

时间:2013-01-15 06:12:09

标签: php mysql sql pdo

我需要运行插入和同步更新,但我只使用插入测试来捕获错误。

当我定义正确和不正确的表时,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'**

2 个答案:

答案 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))解决方案可帮助您一起运行多个查询, 如果查询不正确,则不会执行任何其他查询。