我将MySQL表与主键作为AUTO_INCREAMENTED(UNSIGNED INT)作为序列号。 每次我在此表中插入新行时,我都要向显示插入的AUTO_INCREAMENTED UNSIGNED INT的用户发出确认。
目前在插入行之后,我正在执行SELECT Query以获取最后插入的行。 在INSERT(没有SELECT)后立即有更聪明的方法来获取插入值吗?
答案 0 :(得分:2)
答案 1 :(得分:2)
尝试使用mysql_insert_id()
echo mysql_insert_id();
有关mysql_insert_id()
并且由于整个mysql_*
扩展程序(提供名称前缀为ext/mysql PHP
的所有函数)从mysql_*
开始正式弃用,因此请尽量避免使用PHP v5.5.0
语句。 将来删除。
您可以更好地使用其他两个MySQL
扩展程序:MySQLi
和PDO_MySQL
,其中任何一个都可以用来代替ext/mysql
。
在mysqli_*
中,它就像
echo mysqli_insert_id();
答案 2 :(得分:1)
LAST_INSERT_ID()中有一个可用于此的函数MySQL Reference Manual。
mysql> CREATE TABLE t1 (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(32));
Query OK, 0 rows affected (0.08 sec)
mysql> INSERT INTO t1(name) VALUES ("John Doe");
Query OK, 1 row affected (0.24 sec)
mysql> SELECT * FROM t1;
+----+----------+
| id | name |
+----+----------+
| 1 | John Doe |
+----+----------+
1 row in set (0.00 sec)
mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 1 |
+------------------+
1 row in set (0.00 sec)