1

挿入と同時更新を実行する必要がありますが、エラーをキャッチするために挿入テストのみを使用しています。

正しいテーブルと正しくないテーブルを定義すると、PDO はエラーを報告しませんが、クエリを実行して間違ったテーブルを 1 つ選択すると、エラーが報告されます。

この問題を解決するのに十分な知識がありません。本当に 2 つのクエリを一緒に実行する必要があります。ありがとうございます。

$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 は 1 つのクエリで複数の VALUES 句をサポートします。

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

等々。

挿入後に更新する必要がある場合も問題ありません。
1 つの INSERT と 1 つの UPDATE の 2 つの個別のクエリを実行するだけです。単一の問題はありません。

于 2013-01-15T06:56:49.517 に答える
0

この (このリンク:複数のクエリに対する PDO サポート (PDO_MYSQL, PDO_MYSQLND) ) ソリューションは、複数のクエリを一緒に実行するのに役立ちます。不適切なクエリが発生した場合、他のクエリは実行されません。

于 2019-03-16T07:25:01.720 に答える