2016-09-09 59 views
0

這是我有:獲取最後一個ID PDO

$stmt = $handler->prepare('SELECT id FROM users'); 
$stmt->execute(); 
$id = $handler->lastInsertId(); 

echo $id; 

所以,我想結果是,例如,「有註冊用戶的$ id」。

+0

'lastInertId'在成功執行INSERT操作後可用。你想要'SELECT MAX(id)' – hjpotter92

+0

[行數與PDO]可能的重複(http://stackoverflow.com/questions/883365/row-count-with-pdo) –

回答

2

你永遠不需要從表中選擇「最後的ID」。每當你想到你需要它時,你就需要別的東西。例如,無論「Last id」與註冊的用戶數量無關。相反,你必須計數用戶:

$count = $handler->query('SELECT count(id) FROM users')->fetchColumn(); 
echo "There is $count registered users"; 
+0

'SELECT id FROM users ORDER BY id DESC LIMIT 1'這也是可行的,但也許它不是正確的,謝謝。 – Monk

+0

是的,它甚至不是靠近正確的那個 –

0

PDO::lastInsertId - 返回上次插入行或序列值的ID。
https://secure.php.net/manual/en/pdo.lastinsertid.php

你想要的是一個計數註冊用戶的,見Row count with PDO

要檢索最後插入的ID或序列值,請參閱PDO get the last ID inserted

+0

他不需要計算*結果*。只是因爲他沒有他們。 –

+0

如果您選擇了一些數據,得到了一些結果,然後想對它們進行計數,則可以使用「結果」一詞。雖然OP沒有任何查詢結果。他得到的唯一結果就是伯爵本身,顯然沒有計算它的重要性。 –