mysqli_num_rows()期望参数1为mysqli_result,给定null

时间:2014-08-26 09:11:29

标签: php mysqli

我是PHP新手,有一个新问题。我正在开始使用mysqli。

我在一个小册子上工作。如果我想要值,用户名检查它是否已经分配,​​使用mysqli_num_rows我输出以下错误:警告:mysqli_num_rows()期望参数1为mysqli_result,在C:\ xampp \ htdocs \ index.php中给出null 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);
        } 
    }

?>

1 个答案:

答案 0 :(得分:2)

我可能在这里错了,但是当你在进行SELECT查询时,你没有指定你想要选择的内容。

$rows = mysqli_query("SELECT FROM users WHERE username = ".'$username'."")

应该是:

$rows = mysqli_query($db, "SELECT * FROM users WHERE username = '".$username."'")