我正在尝试构建一个表单,以允许将关键字绑定到文章。此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插入了几种不同的方法,但没有一种方法可以将两个语句分成两个不同的表。
编辑* 如果不可能,那么在运行第二个查询之前如何确保第一个插入完成?
答案 0 :(得分:4)
这是一种很常见的错误观念 出于某种原因,人们不断尝试在一次通话中填写尽可能多的查询 虽然实际上没有任何理由。
只需按常规方式逐一运行所有查询 这绝对没有错。