mysql_num_rows()希望参数1是资源,布尔值在C:/db.php中给出

mysql_num_rows()希望参数1是资源,布尔值在C:/db.php中给出,mysql,Mysql,新添加的函数位于db.php中 通过使用这些函数,我们正在执行代码。 executeQuery($qry)工作正常,返回结果为1。 接下来我们调用totalRecords($res),在本例中,它抛出警告。可能的错误: //authentication process starts $sel = "SELECT * FROM g_admin WHERE loginname='$ln' AND apassword='$pw'"; $res = executeQue

新添加的函数位于db.php中 通过使用这些函数,我们正在执行代码。 executeQuery($qry)工作正常,返回结果为1。
接下来我们调用totalRecords($res),在本例中,它抛出警告。

可能的错误:

     //authentication process starts
      $sel = "SELECT * FROM g_admin WHERE loginname='$ln' AND apassword='$pw'";
      $res = executeQuery($sel);
        echo "kiran  ".$res;
    if(totalRecords($res) == 0){
        echo "Incorrect LoginName/password";    
      }else{
        $rec = getAssoc($res);
        $_SESSION['AdminId'] = $rec['Id'];    
        header("Location: Home.php");
      }
     //authentication process ends 
    }

function executeQuery($qry){
    return mysql_query($qry) or die ('MySQL Not found // Could Not Connectquery.');
}    
function totalRecords($res){
    return mysql_num_rows($res) or die ('MySQL Not found // Could Not Connectres.');
}    
function getAssoc($res){
    return mysql_fetch_assoc($res) or die ('MySQL Not found // Could Not Connectres.');
}

In the above code $res returns 1. But totalRecords($res) thows mysql_num_rows() expects parameter 1 to be resource, boolean given in c:/db.php
在查询中使用变量时,应该是这样的

$sel = "SELECT * FROM g_admin WHERE loginname=`'$ln'` AND apassword=`'$pw'`";

顺便说一下


你在使用MySql 5.5吗?因为
mysql\u num\u rows
扩展已被弃用。最好在查询中使用
count(*)
,或者使用PDO。

对不起,这根本不是真的。你当然可以争论这是否是高质量的代码,但它的工作原理与OP发布的一样。让OP来决定^_^但我还是得到了同样的警告。@yul757抱歉,但没什么可决定的。OP发布的语法不会抛出错误,因此您认为这是一个(可能的)错误的陈述是完全错误的。这无助于解决手头的真正问题。如果这是一个语法问题,那么错误消息将是完全不同的,而且肯定没有mysql error.SQL语句失败,因此mysql_查询返回一个布尔值(false),而不是结果集。请确保您的查询是有效的,并关注它。您没有发布所有代码,我们不禁要这样说:函数
totalRecords($res)
的定义在哪里?基本上,错误消息意味着您将一个应该是mysql资源句柄的东西交给它,但它是一个布尔值。当返回资源句柄的查询失败时,通常会出现这种情况,因为代码中缺少错误检测,所以没有检测到资源句柄。但是如前所述:如果不发布其余的代码,我们就不能说更多了。函数executeQuery($qry){return mysql_query($qry)或die('mysql Not found//cannot Connectquery.');}函数totalRecords($res){return mysql_num_rows($res)或die('mysql Not found//cannot Connectres.');}函数getAssoc($res{return mysql\u fetch\u assoc($res)或die('mysql Not found//cannot Connectres.');}抱歉:停止:请不要在评论中发布代码!使用上面的
编辑
按钮将缺少的详细信息添加到问题所在的位置。无论如何,附加的详细信息清楚地显示1.您的查询
$sel
抛出错误(最有可能的列或表名是错误的),因此
$res
FALSE
和2。您对此没有任何错误检测,因此尝试继续使用无效的资源句柄。
$sel = "SELECT * FROM g_admin WHERE loginname='{$ln}' AND apassword='{$pw}'";
$sel = "SELECT * FROM g_admin WHERE loginname='".$ln."' AND apassword='".$pw."'";