1

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

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

2 回答 2

1

在您的情况下准备多个查询是没有意义的。

首先,专门为 tins 案例发明的准备好的语句:准备一次,执行多次。所以,你可以这样准备

INSERT INTO test (name) values(?)

然后执行尽可能多的插入次数

下一个。对于 INSERT 查询,Mysql 在一个查询中支持多个 VALUES 子句,例如

INSERT INTO test (name) values ('new name' ),('name'),(...)

等等。

如果您需要在插入后更新 - 也没问题。
只需运行 2 个单独的查询 - 一个 INSERT 和一个 UPDATE。不会有任何问题。

于 2013-01-15T06:56:49.517 回答
0

这个(这个链接:PDO support for multiple queries (PDO_MYSQL, PDO_MYSQLND))解决方案帮助您一起运行多个查询,如果出现不正确的查询,它不会执行任何其他查询。

于 2019-03-16T07:25:01.720 回答