使用PDO从一个语句中插入多个表中的多个记录?

时间:2013-02-05 05:33:21

标签: php mysql sql pdo

我正在尝试构建一个表单,以允许将关键字绑定到文章。此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插入了几种不同的方法,但没有一种方法可以将两个语句分成两个不同的表。

编辑* 如果不可能,那么在运行第二个查询之前如何确保第一个插入完成?

1 个答案:

答案 0 :(得分:4)

这是一种很常见的错误观念 出于某种原因,人们不断尝试在一次通话中填写尽可能多的查询 虽然实际上没有任何理由。

只需按常规方式逐一运行所有查询 这绝对没有错。