0

1 つのボタンを使用して、同じデータベース内の 2 つの異なるテーブルにデータを挿入する必要がありますが、その方法がわかりません。

私の 2 つの挿入コマンドは次のようになります。

$insertSQL1 = sprintf("INSERT INTO table2...blah blah blah..."); // this is a whole load of info from the form
$insertSQL2 = ('INSERT INTO table2...blah blah blah...'); // this is some more data, including an array

次のように、「BEGIN WORK ... COMMIT WORK」機能にそれらを入れてみました。

$insertSQL = "BEGIN WORK;
".$insertSQL1.";
".$insertSQL2.";
COMMIT WORK;";

...しかし、常に次のエラーが発生します。

SQL 構文にエラーがあります。「INSERT INTO...」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

私の人生では、実際の構文エラーが何であるかを理解することはできません。これを行うためのより良い方法に関する提案はありますか?

4

2 に答える 2

1

1 回の呼び出しで複数のクエリを実行することはできません (通常のクエリ呼び出しを使用)。この構文を使用します

insert into table2 (col1, col2, col3)
values (1, 2, 3),
       (4, 5, 6)

1 つのクエリで複数のレコードを挿入します。

于 2013-01-22T14:16:47.923 に答える
0

そのためには、2 つの挿入関数を使用する必要があります。

$query1 = "INSERT INTO table1 (col1, col2) values (1,2)";
$query2 = "INSERT INTO table2 (col1, col2) values (1,2)";
mysql_query($query1);
mysql_query($query2);

簡単にするために mysql_query を使用しました。もちろん、独自の DB 関数を使用する必要があります。ワンクリックで実行できますが、2 つの SQL ステートメントを使用する必要があります。これを行うだけです:

if ($clicked==true){
   //insert queries
}
于 2013-01-22T15:02:45.440 に答える