Orionss Orionss - 2 months ago 6
PHP Question

SELECT COUNT(*) returns 1 even if the request should return 0

When I'm trying to get the number of rows on a SQL request and if not, the connection that follow fails.
But in any case (also if the request should return 0), it returns 1.
Here's my code :

$str = 'SELECT count(*) FROM admins WHERE mail = ? AND mdp = ?';
$arr = array($mail, $pass);
$rqt = sendRqt($str, $arr);
$tab = $rqt->fetchColumn();
$cnt = count($tab);
echo $cnt;


I don't understand why there's no time it returns 0

Answer

The problem is the use of the php function count().

You already have the correct number in your $tab variable as a string (probably, depends on php configuration / version) so you can echo it or cast it to an integer to make sure it is a number.

However, in php:

count(0) === 1
count('0') === 1

See here for example.

You should remove count($tab).

Comments