我正在尝试构建一个表单以允许将关键字绑定(bind)到文章。此 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 有几种不同的插入方式,但没有一种是将两条语句插入到两个不同的表中。
编辑* 如果不可能,那么我如何确保在运行第二个查询之前完成第一个插入?
最佳答案
这是很常见的误解。
出于某种原因,人们不断尝试在一次调用中填充尽可能多的查询。
虽然实际上根本没有理由。
只需按照常规方式一项一项地运行所有查询即可。
绝对没有错。
关于php - 使用 PDO 从一条语句在多个表中插入多条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14700810/