Синтаксическая ошибка при возврате оператора

Я делаю этот простой сайт, и я столкнулся с этой ошибкой:

Моя функция:

<?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; 

И, как сказал Марсель Корпел, используйте подготовленные заявления, чтобы избежать недостатков безопасности.

У вас здесь несколько проблем. Прежде всего нет 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() . Для лучшей безопасности перейдите к подготовленному заявлению .