返回语句的语法错误

我正在做这个简单的网站,我遇到了这个错误:

我的功能:

<?php 
function user_exists($username)
{
    $username = sanitize($username);
    $query = mysqli_query($connect, "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username'");
    return (mysqli_result($query, === 0) 1) ? true : false;
}
 ?>

我的php错误日志:

PHP Parse error:  
syntax error, unexpected '===' (T_IS_IDENTICAL) in function on line 6

第6行是返回线。

我明白语法错误意味着什么,但我确定'==='不是问题。


编辑:我只是在谈论三元条件,这个答案是错误的,因为mysqli_result()函数不存在。

我想你正在尝试这样做:

return mysqli_result($query) === 0 ? false : true;

正如Marcel Korpel所说,使用准备好的语句来避免安全漏洞。


这里有几个问题。 首先没有mysqli_result() ,它不存在。 相反,你可以像下面那样获取行。 你的$connect也超出了范围。 您需要将其作为参数传递,并且即使mysqli_result()确实存在,但由于语法错误,它仍然不起作用。

function user_exists($username, $connect)
{
    $output = false;
    $username = sanitize($username);
    $query = mysqli_query($connect, "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username'");

    if($query) // check the query was successful before trying to fetch
    {
        $row = mysqli_fetch_row($query);
        $output = $row[0] > 0;
    }

    return $output;
}

我假设你的sanitize()正在做mysqli_real_escape_string() 。 为了获得最佳安全性,请切换到准备好的声明。

链接地址: http://www.djcxy.com/p/12039.html

上一篇: Syntax error on return statement

下一篇: syntax error, unexpected T