Php 警告:mysql_result():第4行(…)中提供的参数不是有效的mysql结果资源
这是我的片段 我已经检查了一些与我的错误类似的问题,但到目前为止我还不能解决它Php 警告:mysql_result():第4行(…)中提供的参数不是有效的mysql结果资源,php,mysql,function,Php,Mysql,Function,这是我的片段 我已经检查了一些与我的错误类似的问题,但到目前为止我还不能解决它 <?php function user_exists ($username) { $username = sanitize($username); return (mysql_result(mysql_query("SELECT COUNT(user_id) FROM users WHERE username = $username"), 0) == 1) ? true : false;
<?php
function user_exists ($username) {
$username = sanitize($username);
return (mysql_result(mysql_query("SELECT COUNT(user_id) FROM users WHERE username = $username"), 0) == 1) ? true : false;
}
?>
如果由于某种原因失败,当mysql\u query返回false时,可能会发生这种情况。因此,您应该将其拆分为多个语句并检查返回值
$sql = "SELECT COUNT(user_id) FROM users WHERE username = $username";
$result = mysql_query($sql);
if ($result === false) {
// error handling
return false;
}
return (mysql_result($result, 0) == 1) ? true : false;
您应该将代码拆分为多行,以处理这些错误或特殊情况
mysql\u查询
将返回0到n行,如果出现错误,则返回一个错误。因此,返回的资源仅在非错误查询中为true。这可用于处理以下情况
首先构建并执行查询,然后处理资源
您可以使用以下信息来确定发生错误时的情况:
if(!$result) die("SELECT failed: ".mysql_error());
或者这些想法来处理这个问题
if (!$result=mysql_query($query)) {
return false; // or similar operation
}
if (mysql_num_rows($result)!=1){
return false;
}else{
return true;
}
如果我没有弄错的话,这是因为它没有返回任何行。请尝试执行
echo
以查看清理($username)
returnSORTED有什么作用!我从字段名中取出了单引号。所以不是:返回(mysql_结果(mysql_查询(“SELECT COUNT('user_id'),来自'username',其中'username'='$username')),0)==1)?真:假;我写了------->return(mysql\u结果(mysql\u查询(“username='$username'”用户的选择计数(用户id)),0)=1)?真:假@用户187120如果解决了你的问题,考虑一下。非常感谢。
if (!$result=mysql_query($query)) {
return false; // or similar operation
}
if (mysql_num_rows($result)!=1){
return false;
}else{
return true;
}