当我执行登录表单时,我会遇到以下错误:
警告:mysql_fetch_assoc()期望参数1为资源,第22行的C:\ xampp \ htdocs \ login \ check.php中给出布尔值
<?php
include_once ("function.php");
$username = $_POST['tfuser'] ;
$password = $_POST['tfpass'] ;
if (isset($username) && isset($password)){
$link = mysql_connect('localhost','root','') or die ('error in connecting to db');
mysql_select_db('login',$link) or die ('error select db');
$sql = "select from * from administration
where username='$username' and password='$password'";
$result = mysql_query($sql,$link);
if (mysql_fetch_assoc($result)){
//login to panel
redirect("panel.php");
} else {
//back to login page
}
} else {
//back to login page
redirect("index.php");
}
?>
现在如何防止显示此错误并阻止Mysql_fetch_assoc错误?
答案 0 :(得分:1)
您收到以下错误,因为执行SQL语句失败。
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\login\check.php on line 22
您的SQL查询:
$result = mysql_query($sql,$link);
返回FALSE
。这就是为什么当你使用mysql_fetch_assoc()
时它会返回一个警告。
要解决此问题,请确保您的$result
包含mysql资源。一种方法是在SQL查询失败的情况下停止脚本执行。你可以这样做:
$result = mysql_query($sql,$link) OR die(mysql_error());
这将告诉您SQL执行失败的原因。
答案 1 :(得分:0)
您的mysql查询为false,结果显示错误 警告:mysql_fetch_assoc()要求参数1为资源,在第22行的C:\ xampp \ htdocs \ login \ check.php中给出布尔值 你有这个,因为你使用错误的方式 $ result = mysql_query($ sql,$ link); //不正确的方法 $ result = mysql_query($ sql); //正确的方法
发生此错误是因为查询无法获取任何结果。最好的方法来处理这些类型的错误是echo查询并在浏览器屏幕中查看查询的输出。剪切查询部分并将其粘贴到sql和run.sure它将返回错误......