Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:mysql_result():第4行(…)中提供的参数不是有效的mysql结果资源_Php_Mysql_Function - Fatal编程技术网

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