Предупреждение: mysqli_num_rows() ожидает, что параметр 1 будет mysqli_result, bool задан в C:\wamp64\www\loginregister\register.php на линии 35
строка 35 : if (mysqli_num_rows($usernameQuery) > 0) {
echo "Username уже используется: выберите другое имя пользователя";
Я написал регистрационный код но по окончании работы и мне была принесена следующая ошибка :
Предупреждение: mysqli_num_rows() ожидает, что параметр 1 будет mysqli_result, bool задан в C:\wamp64\www\loginregister\register.php на линии 35
Что я уже пробовал:
<?php require "conn.php"; $username = $_POST["$username"]; $email = $_POST["$email"]; $password = $_POST["$pass"]; $mobile = $_POST["$mobile"]; $gender = $_POST["$gender"]; $isValidEmail = filter_var($email,FILTER_VALIDATE_EMAIL); if ($conn){ if (strlen($password) < 6 || strlen($password) > 40) { // code... echo "password should be more than 6 characters"; }elseif ($isValidEmail === false ) { // code... echo "Please write a valid email"; } else { $sqlCheckUsername = "SELECT * FROM 'users_table' WHERE 'username' LIKE '$username' "; $usernameQuery = mysqli_query($conn,$sqlCheckUsername); $sqlCheckEmail = "SELECT * FROM 'users_table' WHERE 'email' LIKE '$email' "; $usernameQuery = mysqli_query($conn,$sqlCheckEmail); if (mysqli_num_rows($usernameQuery) > 0) { echo "Username is already used: Pick another username"; }elseif (mysqli_num_rows($usernameQuery) > 0) { echo "email is already registered"; } else { $sql_register = "INSERT INTO 'users_table'(`username`,`email`,`password`,`mobile`,`gender`) VALUES ('$username','$email','$password','$mobile','$gender')"; } if (mysqli_query($conn,$sql_register)) { echo "Registration Successful"; } else { echo "Failed to Register"; } } } else { echo "connection error: Check Your Connection and Try again"; } ?>
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк / интерполяцию для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]
Что касается вашего вопроса, то вставка ошибки в Google даст вам ответ. Или просто посмотрите на "связанные вопросы" в правой части страницы.
Richard Deeming
Кроме того, вы храните пароли в виде обычного текста. Не делай этого.
PHP: password_hash[^]
РНР: функцию password_verify[^]
ericko_254
Спасибо