Ложный положительный счетчик строк PDO - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь проверить, активировал ли пользователь свою учетную запись, используя rowcount.В настоящее время он возвращает положительный результат, даже когда я намеренно редактирую данные базы данных, чтобы потерпеть неудачу.

Я проверил свой SQL, чтобы увидеть, была ли это проблема, похоже, он возвращает ожидаемые значения.Я предполагаю, что это как-то связано с моим кодом PHP

try
{
  $db = new Database;
  $query = "SELECT COUNT(*),accountStatus, email FROM users WHERE email  = :email AND accountStatus ='Active'";   
  $stmt = $db->prepare($query);    
  $stmt->bindValue(':email', $email);  
  $stmt->execute();   
  $count = $stmt->rowCount();  
}
catch(Exception $e)
{
 $errors[] = ["name" => "email", "error" => "Something went wrong contact the administrator or try again later"];
} 
if(count($count > 0))
{
  return true;
}       
else
{
  return false;
}

1 Ответ

0 голосов
/ 27 января 2019

Из документов :

PDOStatement :: rowCount () возвращает количество строк, затронутых последним оператором DELETE, INSERT или UPDATE, выполненным соответствующим объектом PDOStatement.

Если последний оператор SQL, выполненный связанным PDOStatement, был оператором SELECT, некоторые базы данных могут возвращать количество строк, возвращаемых этим оператором.Однако такое поведение не гарантируется для всех баз данных и не должно использоваться для переносимых приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...