【问题标题】:Return newly inserted index value [duplicate]返回新插入的索引值[重复]
【发布时间】:2012-03-16 11:01:55
【问题描述】:

我有两张桌子ProductionProduction_DetailProduction_Detail 保存一些订单的详细信息,并有一个指向 Production 的外键。当我在Production 中插入一行时,自动递增列会设置该行的键。我需要该键,以便它可以与在 Production 中插入主行后将插入的新 Production_Detail 行链接。

使用php,我插入数据:

insert into Production Values ('','$producer_id','$order_date','$company_id','$emp_id');

我需要找到 '' 部分,以便以后查询。

【问题讨论】:

标签: php mysql


【解决方案1】:

根据您使用数据库的方式,您可能需要传递数据库变量。

mysql

$last_id = mysql_insert_id($db);

mysqli

$last_id = mysqli_insert_id($db);

【讨论】:

    【解决方案2】:
    【解决方案3】:

    取决于您使用的 mysql/query 扩展,但 PHP 有一个 mysql_insert_id 函数来返回最近插入的行的自动增量值。

    【讨论】:

      【解决方案4】:

      如果你使用 PDO 你可以使用函数

      $id = $pdo->lastInsertId();
      

      【讨论】:

      • 但是如果有多个用户使用该脚本怎么办?不会导致冲突吗?
      • 没有。我不知道确切的解释方式,但它会给你上面查询的 id,因为它与数据库的“连接”相同。也许其他人可以准确地解释。
      • 谢谢!我阅读了描述,它说它打开了与mysql_connect() 的连接。
      • 如果你使用mysql_connect(),你需要使用mysql_insert_id(),就像别人说的那样。如果您使用 PDO 扩展,lastInsertId() 可以工作
      猜你喜欢
      • 2021-02-20
      • 2019-08-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      相关资源
      最近更新 更多