检查PHP和mysqli中是否存在电子邮件和用户名

检查PHP和mysqli中是否存在电子邮件和用户名,php,mysqli,Php,Mysqli,我正在尝试检查我正在进行的名为bleeter的模拟Twitter项目中是否存在riegistration的句柄或电子邮件,但我发现以下错误: 注意:在第20行的first.php中,类mysqli_result的对象无法转换为int 这是我检查num\u rows\u handle==0的行。我该怎么做 $query_check_handle = "SELECT * FROM users WHERE handle = " . $handle; $num_rows_handle = mysqli_

我正在尝试检查我正在进行的名为bleeter的模拟Twitter项目中是否存在riegistration的句柄或电子邮件,但我发现以下错误:

注意:在第20行的first.php中,类mysqli_result的对象无法转换为int

这是我检查
num\u rows\u handle==0
的行。我该怎么做

$query_check_handle = "SELECT * FROM users WHERE handle = " . $handle;
$num_rows_handle = mysqli_query($dbc, $query_check_handle);
if ($num_rows_handle == 0) { // Line 20
    //check email
    $query_check_email = "SELECT * FROM users WHERE email = " . $email;
    $num_rows_email = mysqli_query($dbc, $query_check_email);
    if ($num_rows_email == 0) {
        $query_register = "INSERT INTO users (first_name,  last_name, handle, password, email, ACL) 
                        VALUES ('$fname', '$lname',  '$handle', '$pass', '$email', '$ACL')"
        or DIE ("error running the query.");
        mysqli_query($dbc, $query_register);        
        echo "<br>";
        echo "You have succesfully registered, please login";
    } else {
        echo "<br>";
        echo "Email already in use.  Please try again";
    }
} else {
    echo "<br>";
    echo "Handle already in use.  Please try again";
}
$query\u check\u handle=“从用户中选择*,其中handle=”$手柄
$num\u rows\u handle=mysqli\u query($dbc,$query\u check\u handle);
如果($num_rows_handle==0){//第20行
//查看电子邮件
$query\u check\u email=“从用户中选择*,其中email=”.$email;
$num\u rows\u email=mysqli\u query($dbc,$query\u check\u email);
如果($num\u rows\u email==0){
$query\u register=“插入到用户中(名字、姓氏、句柄、密码、电子邮件、ACL)
值(“$fname”、“$lname”、“$handle”、“$pass”、“$email”、“$ACL”)
或者死(“运行查询时出错”);
mysqli_query($dbc,$query_register);
回声“
”; echo“您已成功注册,请登录”; }否则{ 回声“
”; 回显“电子邮件已在使用中,请重试”; } }否则{ 回声“
”; echo“句柄已在使用,请重试”; }
当查询为
SELECT
时,
mysqli\u查询
返回类型为
mysqli\u result
的对象,该对象具有包含行数的属性
num\u rows
。因此

$result = mysqli_query($dbc, $query_check_email);
$num_rows_email = mysqli_num_rows($result);

函数是一个对象。第20行比较实际上是试图将
int
与任意对象进行比较。
mysqli\u result
对象有一个
num\u rows
属性。我试过了,它注册了一个人,即使电子邮件存在,它也给了我这个通知:试图在第25行的C:\Users\Elizabeth\Documents\UniServer\www\bleeter\first.php中获取非对象的属性($num\u rows\email=$result->num\u rows;)