在mysql多查询中使用最后插入的ID

我正在尝试在 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) ;


陪伴而非守候
浏览 167回答 1
1回答

开满天机

不要使用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);
打开App,查看更多内容
随时随地看视频慕课网APP