1

キーワードを記事にバインドできるようにするフォームを作成しようとしています。この SQL ステートメントはクエリとして直接機能しますが、pdo ステートメントとしてパッケージ化する方法がわかりません。キーワードをキーワード テーブルに追加し、キーワード ID + 記事 ID を多対多のマッピング テーブルに追加します。

$insertK = $dbh->prepare("INSERT IGNORE INTO Keywords (Keyword)
VALUES (:KeywordID1);
INSERT INTO Keyword_Article (KeywordID, ArticleID)
VALUES ((SELECT KeywordID FROM Keywords WHERE Keyword = :KeywordID2), :ArticleID)");

$insertK->bindParam(':KeywordID1',  $keywordID);
$insertK->bindParam(':KeywordID2',  $keywordID);
$insertK->bindParam(':ArticleID',  $articleID);
$insertK->excecute();

PDO がいくつかの異なる方法で挿入するのを見たことがありますが、2 つのステートメントを 2 つの異なるテーブルに挿入する方法はありません。

編集*それが不可能な場合、2番目のクエリを実行する前に最初の挿入が完了したことを確認するにはどうすればよいですか?

4

1 に答える 1

4

これはよくある誤解です。
何らかの理由で、人々は常に 1 回の呼び出しでできるだけ多くのクエリを詰め込もうとしています。
実際にはまったく理由はありませんが。

すべてのクエリを通常の方法で 1 つずつ実行するだけです。
まったく問題ありません。

于 2013-02-05T05:41:21.573 に答える