金泽城
2017-03-13 15:11
我在本地建了数据库和相关测试代码,并把代码改为 mysqli_insert_id ,同样也是返回 0;
在网上搜了这个问题,没有看到一个有效的答案,基本上都是在解释什么情况下会返回 0 ,但实际情况是:什么都正确的情况下(数据库表的id字段也是自增字段,也没有使用DELAYED关键字)就是没有按照这个函数的描述那样,返回刚插入的这条记录的真正 id ,而是始终返回 0 ,不管操作多少次都是如此;
使用了DELAYED关键字。使用这个关键字后,执行插入语句时不会立即插入,而是会进入一个队列。数据库会在后台依次处理这个队列里的内容。所以SQL语句执行完毕后,由于数据未插入,就得不到最后插入的ID。
同样啊 楼主我也是这个问题使用了AUTO 每次INSERT也都显示成功了但是LAST_INSERT_ID()返回的还是0
mysql> SELECT *FROM a1;
-> //
+-------+----------+
| us_id | username |
+-------+----------+
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | TOM% |
| 5 | D |
+-------+----------+
5 rows in set (0.00 sec)
mysql> SELECT LAST_INSERT_ID()//
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 0 |
+------------------+
1 row in set (0.00 sec)
可能是这个网站的安全防护措施把,不可能让人直接插数据进数据库的
PHP进阶篇
181907 学习 · 2654 问题
相似问题