我收到mysqli错误消息,但它仍然返回消息

时间:2014-01-28 17:38:01

标签: php database mysqli

我正在使用AJAX在我的注册页面上调用以下方法来验证表单,我已经复制了我遇到麻烦的行。我收到这条消息 警告:mysqli_num_rows()要求参数1为mysqli_result,第15行的/home/waexchan/public_html/signup.php中给出布尔值,但在网站上显示消息Username为OK,所以我很困惑。第15行是以$ uname_check

开头的行
?><?php
if(isset($_POST["usernamecheck"])){
include_once("db_conx.php");
$username = preg_replace('#[^a-z0-9]#i', '', $_POST['usernamecheck']);
$sql = "SELECT username from User WHERE username'$username' LIMIT 1";
$query = mysqli_query($db_conx, $sql); 
$uname_check = mysqli_num_rows($query);
if (strlen($username) < 3 || strlen($username) > 16) {
    echo '<strong style="color:#F00;">3 - 16 characters please</strong>';
    exit();
}
if (is_numeric($username[0])) {
    echo '<strong style="color:#F00;">Usernames must begin with a letter</strong>';
    exit();
}
if ($uname_check < 1) {
    echo '<strong style="color:#009900;">' . $username . ' is OK</strong>';
    exit();
} else {
    echo '<strong style="color:#F00;">' . $username . ' is taken</strong>';
    exit();
}

}

1 个答案:

答案 0 :(得分:2)

您的SQL查询似乎有误。相应地更改您的查询:

例如

 $sql = "SELECT username from User WHERE username='$username' LIMIT 1";