#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);
}