如何使用PDO檢查用戶名是否存在?我只需要知道一個布爾真(存在)或假(不)。我最初的地方設立了,但我不能確定爲行計數下一步使用PHP PDO檢查用戶名是否存在
$sthandler = $dbhandler->prepare('SELECT username FROM userdb WHERE username=? LIMIT 1');
$sthandler->execute(array('username'));
// ... What's next?
如何使用PDO檢查用戶名是否存在?我只需要知道一個布爾真(存在)或假(不)。我最初的地方設立了,但我不能確定爲行計數下一步使用PHP PDO檢查用戶名是否存在
$sthandler = $dbhandler->prepare('SELECT username FROM userdb WHERE username=? LIMIT 1');
$sthandler->execute(array('username'));
// ... What's next?
檢查:
if ($sthandler->rowCount() > 0) {
// do something here
}
謝謝,夥計。正是我需要的。最終代碼:'if(!$ sthandler-> rowCount())throw new invalidUserException();' – enchance
我有一個問題,請賜教,例如沒有記錄存在計數將是'0''0'不大於'0'所以沒有什麼會發生應該是'$ sthandler-> rowCount()<1',所以當用戶存在時它不會做任何事情來避免重複,如果不存在,它會繼續? –
只要抓住該行:
if($row = $sthandler->fetch()){
// User exists: read its details here
}else{
// User does not exist
}
$username_exists = (bool) $sthandler->fetchColumn();
注你甚至可以優化查詢,因爲實際上你不需要選擇用戶名。
SELECT username FROM userdb ...
成爲
SELECT 1 FROM userdb ...
你是要去想算,從查詢拿出行的數量(檢查湯姆的答案)。如果它是0,那麼用戶不存在,如果它是1或更多,他會這樣做。一個提示:我通常不會限制查詢,如果用戶名存在多於一次,我可以拋出一個錯誤,這意味着有東西被竊聽或可能的入侵者重複帳戶... – HTDutchy
@ s4uadmin - 你必須在數據庫中執行一定數量的數據完整性權限,例如具有獨特的索引。否則,你會瘋狂測試所有可能的損壞數據。 –