我试图建立一个允许将关键字绑定到文章的表单。这个SQL语句直接用作查询,但我不知道如何将其打包为pdo语句。它将关键字添加到关键字表中,将关键字ID+Article 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插入了一些不同的方法,但是没有一种方法可以将两个语句插入到两个不同的表中。
编辑*
如果不可能,那么在运行第二个查询之前,如何确保第一次插入已完成?
最佳答案
这是很常见的误解。
出于某种原因,人们总是试图在一个调用中填充尽可能多的查询。
而事实上根本没有理由。
只需按常规方式逐一运行所有查询。
这绝对没有问题。