mysql查询仅针对数字运行

时间:2013-03-28 18:08:33

标签: mysql mysql-num-rows

    $username = $_POST['username'];
    $password = $_POST['password'];
    $passworda = $_POST['passworda'];
    $email = $_POST['email'];

    if ($password == $passworda){
        echo 'this is the user name to be chacked:' .$username .'<br>';
        $query = "SELECT username FROM mishta where username=$username";
        $queryrun = mysql_query($query);
        echo $queryrun .'<br>';
        echo mysql_num_rows($queryrun) .'<br>';

        if (mysql_num_rows($queryrun)!=1){
            mysql_query("INSERT INTO mishta(id, username, password, email) VALUES ('', '$username','$password','$email')");
        }   
        else{
            echo 'user already exist';
        }

你好,

我正在尝试制作一个简单的注册表单,我从html表单获取useername,我想确保它在我的数据库中不存在。 问题在于,每当我将用户名作为数字(1,2,3 ......)运行时,它就能顺利运行。

但是,当我尝试用字母写任何东西时,比如Bob或Dora我得到以下错误:

警告:mysql_num_rows()期望参数1是资源,在...中给出布尔值

然而,这些信息仍然存储在我的数据库中,意味着它在最后一个if语句中变为false,并且它将继续变为false(如果我再试一次,它将只插入重复项。)

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您忘记了用户名周围的引号:

$query = "SELECT username FROM mishta where username='$username'"

引号用作字符串分隔符。数字不是字符串,如果您使用数字,它就会起作用。