Php 警告:mysql_result():提供的参数不是中的有效mysql结果资源

Php 警告:mysql_result():提供的参数不是中的有效mysql结果资源,php,mysql,function,Php,Mysql,Function,可能重复: 大家好,我希望你们能像上次一样帮我解决这个问题。我正在尝试使用php进行用户注册,我做的一切都很好,除了以下几点: Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 首先,我试着做一个消毒功能,但没有成功。这是我的第一次尝试 function user_exists ($username){ $username = sanit

可能重复:

大家好,我希望你们能像上次一样帮我解决这个问题。我正在尝试使用php进行用户注册,我做的一切都很好,除了以下几点:

     Warning: mysql_result(): supplied argument is not a valid 
     MySQL result resource in 
首先,我试着做一个消毒功能,但没有成功。这是我的第一次尝试

    function user_exists ($username){
    $username = sanitize ($username);
    return (mysql_result(mysql_query("SELECT COUNT('id') FROM 'members' WHERE 
    'username' = '$username' "), 0) == 1) ? true : false;
    }
然后我想我可以尝试使用mysql\u real\u escape\u字符串,但后来出现了mysql\u结果错误,这让我发疯,因为我找不到我出错的地方。下面是我的mysql\u real\u escape\u字符串代码:

     function user_exists ($username){
     $username = mysql_real_escape_string ($username);
     return (mysql_result(mysql_query("SELECT COUNT('id') FROM 'members' WHERE 
     'username' = '$username' "), 0) == 1) ? true : false;
     }

我希望有人能告诉我哪里做错了,这样我就能从错误中吸取教训。谢谢大家

问题是您正在用单引号包装表名和列名,必须将其删除,因为名称不在MySQL保留关键字列表中,正确的转义方法是使用反勾号

SELECT COUNT(id) 
FROM members 
WHERE username = '$username'

请不要使用mysql_*函数,它们被标记为已弃用。使用PDO或MySQLi。事实并非如此。你的回答是正确的,但你的推理是错误的。即使它们是MySQL保留关键字,单引号也不是逃避它们的正确方法。必须使用回勾字符。引号用于字符串,而不是标识符。表名和列名周围的单引号总是不正确。@ColinMorelli,等等,我说过单引号是转义它们的正确方法吗?不,你说必须删除,因为名称不在MySQL保留关键字列表中,这与为什么必须删除它们无关。必须删除它们,因为它们总是错误的。在我删除它们之后,我得到了另一个很好的错误,我得到了警告:mysql\u结果期望参数1是资源,布尔值在