2013-02-05 108 views
0

我試圖建立一個表單,以允許關鍵字綁定到文章。此SQL語句直接作爲查詢使用,但我不知道如何將其作爲pdo語句打包。它將關鍵字添加到關鍵字表和關鍵字標識+文章標識到多對多的映射表中。使用PDO從一個語句插入多個表中的多個記錄?

$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插入一些不同的方法,但沒有做兩個語句到兩個不同的表。

編輯* 如果它不可能那麼我怎麼能確保在運行第二個查詢之前完成第一次插入?

+1

請參閱http://stackoverflow.com/questions/6346674/pdo-support-for-multiple-queries-pdo-mysql-pdo-mysqlnd – FoolishSeth

+1

據我所知,第一次插入應該阻止(腳本應該等待)直到查詢完成。但我可能是錯的。 –

回答

3

這是很常見的誤解。
由於某些原因,人們不斷嘗試儘可能多地在一個呼叫中填充多個查詢。
儘管實際上沒有任何理由。

只需按常規方式逐個運行所有查詢。
它絕對沒有錯。

+2

+1來告訴**只需逐一運行所有查詢。** –

相關問題