为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
陪伴而非守候 2022-07-29 16:28:09
我正在尝试在 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) ;
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

不要使用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);


查看完整回答
反对 回复 2022-07-29
  • 1 回答
  • 0 关注
  • 166 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号