2016-09-09 60 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没有任何查询结果。他得到的唯一结果就是伯爵本身,显然没有计算它的重要性。 –