mysql_insert_id() 總是返回0
我在本地建了數(shù)據(jù)庫和相關(guān)測試代碼,并把代碼改為 mysqli_insert_id ,同樣也是返回 0;
在網(wǎng)上搜了這個問題,沒有看到一個有效的答案,基本上都是在解釋什么情況下會返回 0 ,但實(shí)際情況是:什么都正確的情況下(數(shù)據(jù)庫表的id字段也是自增字段,也沒有使用DELAYED關(guān)鍵字)就是沒有按照這個函數(shù)的描述那樣,返回剛插入的這條記錄的真正 id ,而是始終返回 0 ,不管操作多少次都是如此;
2017-03-14
使用了DELAYED關(guān)鍵字。使用這個關(guān)鍵字后,執(zhí)行插入語句時不會立即插入,而是會進(jìn)入一個隊列。數(shù)據(jù)庫會在后臺依次處理這個隊列里的內(nèi)容。所以SQL語句執(zhí)行完畢后,由于數(shù)據(jù)未插入,就得不到最后插入的ID。
2018-08-11
同樣啊 樓主我也是這個問題使用了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)
2017-03-14
可能是這個網(wǎng)站的安全防護(hù)措施把,不可能讓人直接插數(shù)據(jù)進(jìn)數(shù)據(jù)庫的