Я новичок в PHP и задаю новый вопрос. Я начинаю работать с mysqli.
Я работаю в небольшом регистре. Если я хочу значение, имя пользователя проверяет, если оно уже назначено, с mysqli_num_rows меня выводит следующая ошибка: Warning: mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, null указан в C: \ xampp \ htdocs \ index.php on line 21
Может ли кто-нибудь мне помочь? Код:
<?php $db = mysqli_connect( 'localhost', 'root', '', 'holycms'); if(!db) { exit("Verbindungfehler:" . mysqli_connect_error()); } $username = $_POST["username"]; $password = $_POST["password"]; if(isset($_POST["username"]) OR isset($_POST["password"])) { if(empty($_POST["username"]) OR empty($_POST["password"])) { echo "Bitte fuelle alle Felder aus!"; } else { $username = mysqli_real_escape_string($_POST['username']); $rows = mysqli_query("SELECT FROM users WHERE username = ".'$username'."") or die(mysqli_error); } if(mysqli_num_rows($rows) > 1) { echo "Username bereits besetzt"; } elseif(!ctype_alnum($_POST['username'])) { "Dein Benutzername darf keine Sonderzeichen besitzen"; } elseif(strlen($_POST["username"])) { echo "Dein Username ist zu lang!"; } else { $password = sha1($_POST["password"]); $db = mysqli_query("INSERT INTO users (username, password) VALUES ('$username', '$password'") or die(mysqli_error); } } ?>
Возможно, я ошибаюсь, но когда вы делаете свой запрос SELECT, вы не указываете, что вы хотите выбрать.
$rows = mysqli_query("SELECT FROM users WHERE username = ".'$username'."")
Должно быть:
$rows = mysqli_query($db, "SELECT * FROM users WHERE username = '".$username."'")