Php 警告:mysql_result():提供的参数不是中的有效mysql结果资源
可能重复: 大家好,我希望你们能像上次一样帮我解决这个问题。我正在尝试使用php进行用户注册,我做的一切都很好,除了以下几点: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
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是资源,布尔值在