gpt4 book ai didi

php - 在单个查询中使用 mysql_insert_id

转载 作者:行者123 更新时间:2023-11-29 12:11:45 25 4
gpt4 key购买 nike

好吧,不知道这在实践中是否像理论上一样简单,但我想知道。

我在该查询中有一个 INSERT 查询,我想提取 AUTO_INCRMENT 值,然后在同一查询中重用它。

例如

//values to be inserted in database table
$a_name = $mysqli->real_escape_string($_POST['a_name']);
$details = $mysqli->real_escape_string($_POST['details']);
$display_type = $mysqli->real_escape_string($_POST['display_type']);
$getId = mysqli_insert_id();

//MySqli Insert Query
$insert_row = $mysqli->query("INSERT INTO articles (a_name,details,display_type,date_posted) VALUES('$a_name','$details','$display_type$getId',CURRENT_TIMESTAMP)");

显然,我得到了一个空白值(我知道,因为mysqli_insert_id()在查询之前,但我已经尝试了所有我能做的,但没有结果如我所愿。有人可以帮助我如何实现这一目标

最佳答案

据我所知,这是不可能完成的。由于没有运行任何查询,MySQL 无法返回该查询的 ID。

  1. 您可以使用经典的方法,拉出前一条记录的 id 并为其加 1,这不是一个很好的解决方案,因为如果删除一条记录,自动增量值和最后一个值 +1 可能会有所不同。
  2. 运行多个查询,然后使用 insert_id(MySQLi 与您使用的不同,您最好使用评论中提到的 $db->lastInsertId();
  3. 预先运行查询并将其存储为变量;

    选择auto_increment FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'tablename'

我强烈推荐选项 2,它是实现您想要实现的目标的最干净、最可靠的方法。

关于php - 在单个查询中使用 mysql_insert_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30551029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com