mysql_num_rows()希望参数1是资源,布尔值在C:/db.php中给出
新添加的函数位于db.php中 通过使用这些函数,我们正在执行代码。 executeQuery($qry)工作正常,返回结果为1。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
接下来我们调用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."'";