2

こんにちは、1 つの SQL クエリを使用して、質問と回答を 2 つのテーブルに保存しようとしています。

INSERT INTO questions ( question, level_ID ) VALUES ( 'hello', '1'); INSERT INTO answers (questions_ID, answer, ok) VALUES (LAST_INSERT_ID(),'doei',0), (LAST_INSERT_ID(),'ciao',1); 

PHPMyAdmin のコードを SQL ボックスで実行すると問題なく動作しますが、PHP コード生成スクリプトで実行すると、次のエラーが返されます。

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

私は何が間違っているのかわかりません...誰か??

前もって感謝します。

4

2 に答える 2

1

これは SQL クエリではなく、一連のクエリです。
PHPmyAdmin はセットを分割し、クエリを個別に実行するだけです。

だからあなたはしなければなりません。
1つずつ実行するだけです。

何も変更しないでください。追加の変数などは必要ありません。
2 つの連続した呼び出しで、まったく同じクエリを次々と実行するだけです。
それで全部です。

于 2013-02-25T11:23:52.637 に答える
0

マニュアルから:

生成された ID は、接続ごとにサーバーに保持されます。これは、関数によって特定のクライアントに返される値が、そのクライアントによって AUTO_INCREMENT 列に影響を与える最新のステートメントに対して生成された最初の AUTO_INCREMENT 値であることを意味します。この値は、他のクライアントが独自の AUTO_INCREMENT 値を生成したとしても、影響を受けることはありません。この動作により、各クライアントは、他のクライアントのアクティビティを気にせず、ロックやトランザクションを必要とせずに、独自の ID を取得できるようになります。

したがって、同じ接続を使用する限り、すべてのクエリを SQL データベース呼び出しにパックする必要はありません。ただし、そうしたい場合は、データベース ライブラリと関数がその機能をサポートしていることを確認する必要があります。

于 2013-02-25T12:10:20.697 に答える