PHP MYSQL选择最后插入的ID [重复]

Posted

技术标签:

【中文标题】PHP MYSQL选择最后插入的ID [重复]【英文标题】:PHP MYSQL Select Last Inserted ID [duplicate] 【发布时间】:2016-04-14 19:36:36 【问题描述】:

我已经尝试在这里找到答案,并阅读了上面的 php 文档,但是它并没有很好地解释它。

我只是想获取用户插入的最后一个 ID。我知道 mysql 已被弃用,但我需要这样做。

这是我目前所拥有的。

$query="INSERT INTO teams (team_name)
VALUES
('$team_name')";
mysql_query($query) or die('error');

$team_id = mysql_query("SELECT LAST_INSERT_ID()");

谢谢!

【问题讨论】:

问题出在哪里? 你需要这样做,因为这是一个学校项目吗?去告诉你的学校他们错了......他们的 wifi 网络的安全性可能真的很差,他们的蓝牙很容易被劫持。 @rcsnooks 但确实如此。链接的问题提供了 PDO、MySQLi 以及旧的 mysql_ 的答案 请勿使用mysql_*,它已被删除且不再起作用,请改用PDO link 或mysqli link。 我说代码似乎容易受到 SQL 注入的攻击,因为在文本包含之前,我们看不到任何值的转义。我们看不到它,所以我们将保守,并假设值$team_name 可能包含潜在的不安全值。 (为什么需要对 $team_name 的值进行转义以便在 SQL 文本中包含 之前的任何地方使用 MySQL 语句?)而且我们不知道您为什么要避免使用 mysqli_insert_id 函数。 (所以,我们假设有必要这样做,运行一个单独的 SELECT。) 【参考方案1】:

看看mysql_insert_id

但要注意使用ON DUPLICATE KEY UPDATE 语句时的问题。它在 php doc 页面上的 cmets 中有描述。

但您的解决方案也应该有效。

另外,如果您使用的是 mysql,请不要忘记 mysql_real_escape 您的输入,$team_name 在您的情况下。

[在此处插入强制 mysql 已弃用警告 ;)]

【讨论】:

【参考方案2】:

您可以通过 PHP 来完成。您不需要查询:mysql_insert_id()

【讨论】:

看到链接页面上的那个大红框了吗? mysql_ 函数不应再使用 @kingkero OP 明确表示需要使用已弃用的 ext/mysql 扩展。 @kingkero 说句公道话,您可能也应该对使用MySQL_ 的其他答案投反对票:-D @Mike 你说得对,我读错了——对不起。编辑了问题以便能够删除不赞成票 @rcsnooks 你是什么意思它不起作用?另外,这是您使用的确切代码吗?因为它将文字字符串 mysql_insert_id() 分配给变量,而不是实际调用函数。

以上是关于PHP MYSQL选择最后插入的ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Mysql 中插入 PHP 值后如何显示最后选择的下拉值?

在php中将最后一个id插入变量发送到另一个页面[重复]

MySQL - 带有更新和插入的过程中最后一次选择的输出

PHP和MySQL选择一个值[重复]

选择每个类别的最后 3 条新闻 - 两个表 - (MySQL - PHP)

MySQL - 选择最后插入的行最简单的方法