简体   繁体   English

是否可以在一个SQL查询中放入两个INSERT语句

[英]Is it possible to put two INSERT statements in one SQL query

I'm trying to get two INSERT statement into one SQL query. 我正在尝试将两个INSERT语句集成到一个SQL查询中。 I tried several things but nothing seems to work. 我尝试了几件事,但似乎无济于事。 If I look on the internet it seems it has to work. 如果我在互联网上看,它似乎必须工作。 But it doesn't work for me and I get an error. 但这对我不起作用,并且出现错误。 I'm using this code with PDO. 我正在PDO中使用此代码。

I tried multiple web browsers, multiple types of code and I tried the "BEGIN" and "COMMIT" statement. 我尝试了多种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);

That silly concatenation mistake aside, it is technically possible to run two INSERT queries in one call, but there is not a single reason to do so . 除了这个愚蠢的串联错误之外,从技术上讲,可以在一个调用中运行两个INSERT查询,但是这样做的原因并不单一

Besides, you will need to configure PDO specifically to allow multiple queries which is not advised. 此外,您将需要专门配置PDO,以允许不建议进行多个查询。

Therefore, just run these two queries as two separate prepared statements. 因此,只需将这两个查询作为两个单独的准备好的语句来运行。

$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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM