2012-05-01 15 views
0

ここで私が使用しているコードですが、コードは2つの異なるメソッドで同じ値を取得していますが、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'のようですか?挿入後にのみ適用されます。あなたはmax auto_incrementを見つけることを望んでいますか? – ethrbunny

+0

私は最後に作成されたIDを知りたいので、最大auto_incrementです。そのIDを使用して、他のページでいくつかのアクションを実行したい – Arihant

+3

ちょうど "select 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

関連する問題