为了账号安全,请及时绑定邮箱和手机立即绑定

mysql_insert_id() 总是返回0

我在本地建了数据库和相关测试代码,并把代码改为 mysqli_insert_id ,同样也是返回 0;

在网上搜了这个问题,没有看到一个有效的答案,基本上都是在解释什么情况下会返回 0 ,但实际情况是:什么都正确的情况下(数据库表的id字段也是自增字段,也没有使用DELAYED关键字)就是没有按照这个函数的描述那样,返回刚插入的这条记录的真正 id ,而是始终返回 0 ,不管操作多少次都是如此;

正在回答

3 回答

使用了DELAYED关键字。使用这个关键字后,执行插入语句时不会立即插入,而是会进入一个队列。数据库会在后台依次处理这个队列里的内容。所以SQL语句执行完毕后,由于数据未插入,就得不到最后插入的ID。

0 回复 有任何疑惑可以回复我~
#1

金泽城 提问者

非常感谢!
2017-04-03 回复 有任何疑惑可以回复我~

同样啊 楼主我也是这个问题使用了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)


0 回复 有任何疑惑可以回复我~

可能是这个网站的安全防护措施把,不可能让人直接插数据进数据库的

0 回复 有任何疑惑可以回复我~
#1

白砂糖K 回复 金泽城 提问者

压根就没有插入把,你拿var_dump(mysql_query($sql))返回的都是false
2017-06-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

mysql_insert_id() 总是返回0

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信