2 回答

TA貢獻1818條經驗 獲得超7個贊
rowCount當用戶名或電子郵件匹配時,方法返回 >= 1 條記錄。試試那個代碼:
$username = $_POST['username'];
$email = $_POST['email'];
$errors = array();
$sql = "SELECT username, email FROM users WHERE username = :username OR email = :email";
$stmt1 = $pdo->prepare($sql);
$stmt1->bindParam(":username", $username, PDO::PARAM_STR);
$stmt1->bindParam(":email", $email, PDO::PARAM_STR);
$stmt1->execute();
if($stmt1->rowCount() > 0){
$rows = $stmt1->fetchAll();
foreach($rows as $row) {
if($row['username'] === $username) {
$errors['username'] = "Username already in use.";
}
if($row['email'] === $email) {
$errors['email'] = "Email already in use.";
}
}
$stmt1->closeCursor();
}

TA貢獻1946條經驗 獲得超4個贊
你只是從這個查詢中得到計數
$sql = "SELECT uid FROM users WHERE username = :username OR email = :email";
代替
$sql = "SELECT uid,count(uid) FROM users WHERE username = :username OR email = :email";
希望它對單個查詢有所幫助
- 2 回答
- 0 關注
- 92 瀏覽
添加回答
舉報