【问题标题】:How can I get the current ID number with INSERT INTO? [duplicate]如何使用 INSERT INTO 获取当前 ID 号? [复制]
【发布时间】:2012-09-24 16:02:19
【问题描述】:

可能重复:
php/MySQL insert row then get 'id'

如何使用 INSERT INTO 获取当前 ID 号?

mysql_query("INSERT INTO mytable(id,a,b) VALUES(null,3,current ID) ");

mysql_query("
    INSERT INTO tablo(id,a,b)
    VALUES(null,3,this ID number)
            ^            ^
            |            |
            | <Copy ID>  |
            |____________|
");

【问题讨论】:

  • 当前id下是什么意思?这个插入查询运行在哪里?更具体
  • 他的意思是他想做一个插入SQL并取回id,他不知道它是什么,因为他传入了null。这是答案stackoverflow.com/questions/897356/…
  • 我的问题在录制过程中失真。修好了。

标签: mysql sql insert-into


【解决方案1】:

使用mysqli_insert_id(),返回上次查询中使用的自动生成的id。

阅读“PHP mysql_insert_id() Function”或“mysql_insert_id”。

例子:

<?php
$query= "INSERT INTO table_name VALUES ('a','b','c')";
$result = mysql_query($query);
echo "INSERT statement ID is" . mysql_insert_id();
?>

请阅读 mysql_insert_id 页面上 PHP 文档中的红色大框,以 mysqli 开头。

请参阅PHP Documentation 以获取更多参考。

【讨论】:

  • 我正在尝试但不工作,mysql_query("INSERT INTO tablo (id,a,b) VALUES(null,5,mysql_insert_id())");我不想要 MySQLi。我想要 MySQL。
  • 你真的不想使用mysql_query,除非你绝对必须这样做。它很危险,而且更难正确使用。
【解决方案2】:

基本上你可以使用mysqli_insert_id函数。

如 PHP 手册中所述:

mysqli_insert_id() 函数返回由对具有 AUTO_INCREMENT 属性的列的表的查询生成的 ID。如果最后一个查询不是 INSERT 或 UPDATE 语句,或者修改后的表没有具有 AUTO_INCREMENT 属性的列,则此函数将返回零。

【讨论】:

    【解决方案3】:

    您可以尝试获取所选表中使用的序列的下一个值。请检查 MySQL 是否有任何函数来获取这个值。如果在执行 SQL 语句时需要这个数字,那么使用 PHP 函数是不可能的。

    勾选“Get Auto Increment value with MySQL query”。

    【讨论】:

      猜你喜欢
      • 2016-10-08
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      • 2021-07-22
      • 1970-01-01
      • 2020-10-05
      相关资源
      最近更新 更多