那我要如何在php中取得這個值呢
我一開始上網查得到了這個答案:
$result = mysql_query(SELECT Auto_increment FROM information_schema.tables WHERE table_name='(資料表名稱)' AND table_schema = DATABASE(););
$row = mysql_fetch_array($result);
$nextId = $row['Auto_increment'];
mysql_free_result($result);
在本機跑是沒有問題,不過掛上網頁空間跑就有問題了
跑的非常慢而且常跑到超時
最後我的空間因為"mySQL負擔過重,連續使用執行時間超過10秒的Query"被停權兩次
最後再查才發現information_schema.tables會隨著資料庫、資料表增加而增大
在我本機只有我自己用的資料庫當然是沒什麼問題,可是網頁空間的mySQL伺服器是同時存有數千甚至數萬個使用者建立的資料庫、資料表
所以這個表格會變得非常巨大,那當然查詢起來就很慢又浩資源了
幸好有查到另一個方法,這個方法就不會有這問題了
$result = mysql_query("SHOW TABLE STATUS LIKE '(資料表名稱)'");
$row = mysql_fetch_array($result);
$nextId = $row['Auto_increment'];
mysql_free_result($result);
資料來源: http://stackoverflow.com/questions/933565/get-auto-increment-value-with-mysql-query
沒有留言:
張貼留言