在 mysql 多查询中使用最后插入的 ID
Using last inserted id in mysql multi query
我正在尝试使用 MySQL muli_query 中最后插入的 ID,但我不知道我错过了什么
这是我的代码:
$query = "INSERT INTO posts
(nparc,id_chauffeur,id_camion,
lot_de_bord,triangle,pelle,balai,date)
values('$nparc','$id_chauffeur','$id_camion',
'$lot_de_bord','$triangle', '$pelle',
'$balai','$get_datetime');";
$query .= "INSERT INTO photos
(post_id,64_image1, 64_image2, 64_image3,
64_image4 ,date_upload)
values('$mysqli->insert_id','$imsrc1','$imsrc2',
'$imsrc3','$imsrc4','$get_datetime');";
$result = mysqli_multi_query($connection, $query) ;
不要使用mysqli_multi_query()
。不建议使用。
您可能正在寻找的是交易。您可以将这两个语句作为事务内的准备语句执行。
try {
$connection->begin_transaction();
$stmt = $connection->prepare('INSERT INTO posts
(nparc,id_chauffeur,id_camion,lot_de_bord,triangle,pelle,balai,date)
values(?,?,?,?,?,?,?,?)');
$stmt->bind_param('ssssssss', $nparc, $id_chauffeur, $id_camion, $lot_de_bord, $triangle, $pelle, $balai, $get_datetime);
$stmt->execute();
$stmt = $connection->prepare('INSERT INTO photos
(post_id, 64_image1, 64_image2, 64_image3, 64_image4 ,date_upload)
values(?,?,?,?,?,?)');
$stmt->bind_param('ssssss', $connection->insert_id, $imsrc1, $imsrc2, $imsrc3, $imsrc4, $get_datetime);
$stmt->execute();
$connection->commit();
} catch (\Throwable $e) {
$connection->rollback();
}
确保您已启用错误报告,否则您的代码将无法运行。您必须将此行放在 new mysqli()
之前
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
我正在尝试使用 MySQL muli_query 中最后插入的 ID,但我不知道我错过了什么
这是我的代码:
$query = "INSERT INTO posts
(nparc,id_chauffeur,id_camion,
lot_de_bord,triangle,pelle,balai,date)
values('$nparc','$id_chauffeur','$id_camion',
'$lot_de_bord','$triangle', '$pelle',
'$balai','$get_datetime');";
$query .= "INSERT INTO photos
(post_id,64_image1, 64_image2, 64_image3,
64_image4 ,date_upload)
values('$mysqli->insert_id','$imsrc1','$imsrc2',
'$imsrc3','$imsrc4','$get_datetime');";
$result = mysqli_multi_query($connection, $query) ;
不要使用mysqli_multi_query()
。不建议使用。
您可能正在寻找的是交易。您可以将这两个语句作为事务内的准备语句执行。
try {
$connection->begin_transaction();
$stmt = $connection->prepare('INSERT INTO posts
(nparc,id_chauffeur,id_camion,lot_de_bord,triangle,pelle,balai,date)
values(?,?,?,?,?,?,?,?)');
$stmt->bind_param('ssssssss', $nparc, $id_chauffeur, $id_camion, $lot_de_bord, $triangle, $pelle, $balai, $get_datetime);
$stmt->execute();
$stmt = $connection->prepare('INSERT INTO photos
(post_id, 64_image1, 64_image2, 64_image3, 64_image4 ,date_upload)
values(?,?,?,?,?,?)');
$stmt->bind_param('ssssss', $connection->insert_id, $imsrc1, $imsrc2, $imsrc3, $imsrc4, $get_datetime);
$stmt->execute();
$connection->commit();
} catch (\Throwable $e) {
$connection->rollback();
}
确保您已启用错误报告,否则您的代码将无法运行。您必须将此行放在 new mysqli()
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);