简体   繁体   中英

how can i get the value of COUNT(id)

I'm encountering a problem with this object. I don't know (if it is possible), how to get the value of COUNT(id) .

I tried $req[0]->COUNT(id) but "COUNT()" it detected it as a function. How could it be detect as a key?

Here's a var_dump($req):

object(stdClass)[4]
public 'COUNT(id)' => string '1' (length=1)

PHP

$req = $db->query('SELECT COUNT(id) FROM `users` WHERE username ="'.$username.'" AND password = "'.$password.'"');

if($req == 1){
 $_SESSION['authentificated'] = true;
 $_SESSION['username'] = $username;
}

var_dump($req); 

The output of the query should be 0 or 1 if the user is already register or not.

1.You need to add alias for COUNT()

2.After query execution you need to fetch record and then do the comparison

Do like below:-

$req = $db->query('SELECT COUNT(id) as count FROM `users` WHERE username ="'.$username.'" AND password = "'.$password.'"');

$result = mysqli_fetch_assoc($req); // sample example,you need to change accordingly
if($result['count'] == 1){
  //your code

}

Note:-

Saving plain password is very bad idea. so use password hashing

Your current code is wide-open for SQL INJECTION. To prevent from it use prepared statements

mysqli::prepare

PDO::prepare

I will do it something like this: https://3v4l.org/YOBGX

Here alias required or else it won't capture that count value the way you want.

$req = $db->query('SELECT COUNT(id) cnt FROM `users` WHERE username ="'.$username.'" AND password = "'.$password.'"');


var_dump($req); 

Here is the solution you have not bind the key for that please see below

 $req = $db->query('SELECT COUNT(id) as user_exists FROM `users` WHERE username 
="'.$username.'" AND password = "'.$password.'"');

if($req == 1){
    $_SESSION['authentificated'] = true;
    $_SESSION['username'] = $username;
}

var_dump($req); 

Try this --

 $req = mysqli_query($db,'SELECT (COUNT(id)) as countID FROM `users` WHERE username ="'.$username.'" AND password = "'.$password.'"'));
        $row = mysqli_fetch_array($req);
        $countID = $row['countID'];
        if($countID == 1){
         $_SESSION['authentificated'] = true;
         $_SESSION['username'] = $username;
        }

        var_dump($req);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM