是否可以在一个SQL quary中放置两个INSERT语句

时间:2019-05-29 07:29:52

标签: php mysql pdo

我正在尝试将两个INSERT语句放入一个SQL查询中。我尝试了几件事,但似乎无济于事。如果我在互联网上看,它似乎必须工作。但这对我不起作用,并且出现错误。我正在PDO中使用此代码。

我尝试了多种Web浏览器,多种类型的代码,并尝试了“ BEGIN”和“ COMMIT”语句。

$sql = "INSERT INTO gebruiker (email, wachtwoord, rol_id) VALUES (?, ?, 2); ".
"INSERT INTO huisarts (voornaam, achternaam, email, straatnaam, huisnummer, postcode, plaats, telefoonnummer, uid, rol_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, LAST_INSERT_ID(), 2);";
$pdostatement = $pdo->prepare($sql);

1 个答案:

答案 0 :(得分:3)

撇开这种愚蠢的串联错误,从技术上讲,可以在一个调用中运行两个INSERT查询,但是这样做的原因不完全

此外,您将需要专门配置PDO以允许不建议进行多个查询。

因此,只需将这两个查询作为两个单独的准备好的语句运行即可。

$sql = "INSERT INTO gebruiker (email, wachtwoord, rol_id) VALUES (?, ?, 2)";
$stmt = $pdo->prepare($sql);
$stmt->execute($first_query_data);
$sql = "INSERT INTO huisarts (voornaam, achternaam, email, straatnaam, huisnummer, postcode, plaats, telefoonnummer, uid, rol_id) 
VALUES (?, ?, ?, ?, ?, ?, ?, ?, LAST_INSERT_ID(), 2);";
$stmt = $pdo->prepare($sql);
$stmt->execute($second_query_data);