<?php
include('connection/connection.php');
$uname=$_POST['uname'];
$password=$_POST['password'];
$sql=mysql_query("SELECT * FROM elemschool_admin WHERE admin_UName='$uname' AND admin_pass='$password'");
$sql1=mysql_query("SELECT * FROM elemschool_faculty WHERE facultyID='$uname' AND faculty_password='$password'");
$row=mysql_fetch_assoc($sql1);
$cout=mysql_num_rows($sql);
$cout1=mysql_num_rows($sql1);
if($cout>0){
$_SESSION['id']=$uname;
header("location: modules/admin/index.php");
}
else{
?>
<script>
alert("Wrong Input!");
window.location="index.php";
</script>
<?php
}
?>
我收到了错误:
警告:mysql_fetch_assoc()期望参数1是资源,布尔值在
中给出
答案 0 :(得分:0)
由于mysql_fetch_assoc
返回bool,因此sql查询中很可能出现错误(很可能是错误的,例如查询失败)。使用mysql_error
功能查找问题。
mysql_*
已弃用,请切换为mysqli_*
使用mysqli
中的准备好的查询或至少使用escape_string
来逃避所有输入,以避免SQL注入。
答案 1 :(得分:0)
注意mysql_函数已弃用,将在即将推出的php版本7中删除。
在将$result
传递给mysql_fetch_array
之前检查$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'");
if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
}
。您会发现它是错误的,因为查询失败了。有关可能的返回值以及如何处理它们的建议,请参阅mysql_query文档。
参考此示例:
xml