Ошибка MySQL_NUM_Row системы регистрации PHP ООП MySQL MySQL

#php #mysql #oop

#php #mysql #ооп

Вопрос:

Ну, моя регистрация работает, за исключением того факта, что код для определения того, был ли пользователь уже создан, этого не делает.

 public function register($username, $password) { 
  global $core, $db; 

  $username = $core->encrypt($username); 
  $password = $core->encrypt($password); 

  $qry = $db->query("SELECT * 
                       FROM `users` 
                      WHERE `username` = '$username' 
                        AND `password` = '$password'"); 
  $num = $db->num($qry); 

  if($num >= 1) { 
    echo 'This username has already been registered'; 
  } else { 
    $db->query("INSERT INTO `users` 
                  (username, password) 
                VALUES 
                  ('{$username}', '{$password}');"); 
  } 
}
  

Это код, который я использовал, я думаю, что это какая-то ошибка, связанная с запросом, но я не уверен, какая — вероятно, незначительная ошибка.

Ошибка MySQL:

 >Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:xampphtdocshousekeeping_incdb.inc.php on line 14

>$db->num code
        public function num($query) {
            mysql_num_rows($query); << line 14
        } 
  

Комментарии:

1. вы уверены, что $db-> query возвращает результат (возможно, вместо true / false).

2. непосредственно внутри функции, после глобальных параметров, попробуйте: «print_r($ db);» и посмотрите, что вы получите

Ответ №1:

Вы забыли оператор return в вашей функции num и вашей функции qry. Это должно быть:

 public function num($query) {
    return mysql_num_rows($query);
}
  

Вы не предоставили код для своей функции qry, но это должно быть что-то вроде этого:

 public function qry($sql) {
    return mysql_query($sql);
}