2012-05-01 76 views
0

這裏是我使用的代碼,代碼只是通過兩種不同的方法獲得相同的值,但mysql_insert_id()回聲沒有給出輸出。mysql_insert_id()沒有給出值

給出的值 - > echo mysql_insert_id();是0

任何人都可以告訴我可能的原因和如何解決這個問題?

include'config.php';   

$query = "SELECT id 
      FROM  users 
      ORDER BY id DESC 
      LIMIT  1"; 

if($query_run = mysql_query($query)) 
{ 
    $query_result = mysql_fetch_row($query_run); 

    $id = $query_result[0];  

    echo $id; 
    echo $lastId = mysql_insert_id().'<br />'; 
    //'Query Successful!'; 

} else { 
    echo mysql_error(); 
} 
+3

這就像'last_insert_id'嗎?它僅在插入後適用。你希望找到最大的auto_increment? – ethrbunny

+0

我想知道最後創建的id,這是最大的auto_increment。我想使用該ID並在其他頁面上執行一些更多操作。 – Arihant

+3

只需「選擇max(auto_increment_column)」。 – ethrbunny

回答

1

如果您正在查找將要插入的下一個自動增量ID。我想你應該試試這個。

$query_autoinc="SHOW TABLE STATUS LIKE 'mytable'"; 
$exec_autoinc=mysql_query($query_autoinc); 
$row_autoinc=mysql_fetch_assoc($exec_autoinc); 
$inserted_id = $row_autoinc['Auto_increment']; 

或者如果你想要最後插入的ID,你可以試試這個。

$query= "SELECT max(id) 
     FROM  users 
     ORDER BY id DESC 
     LIMIT  1"; 
+0

+1很好的答案,你不需要'ORDER BY id DESC LIMIT 1'部分。 'SELECT MAX(id)FROM users'會做。 –

+0

當然,你是對的。 – abhig10