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 值后如何显示最后选择的下拉值?