完整代码:
<?php
if (isset($_POST['usname']) && isset($_POST['pasw'])){
$username = mysql_ramznegar($_POST['usname'],$link);
$password = mysql_ramznegar($_POST['pasw'],$link);
$query = "SELECT * FROM `admin` WHERE `usname` = $username";
$admin_result = mysql_query($query,$link);
$admin_result = mysql_fetch_array($query,MYSQL_ASSOC);
if($admin_result['usname']==$username && $admin_result['passw']==$password){
if($admin_result[usname] == "admin"){
$_SESSION['auth'] = 1;
redirect("panel");
exit;
}
else{
echo 'ur username or password is invalid';
redirect("index.php");
}
}
}
?>
我有一个数据库,其中的表(admin)有两列,第一列是usname
,第二列是passw
,当我输入时,我仍然选择查询用户名和密码编译器向我显示此错误,如何解决此编译器警告:
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\xampp\htdocs\ramznegar1\index.php on line 60
You should change
$admin_result = mysql_fetch_array($query, MYSQL_ASSOC)
To
$admin_result = mysql_fetch_array($admin_result, MYSQL_ASSOC)
我编辑了代码,但再次遇到此错误:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\ramznegar1\index.php on line 60
最佳答案
你应该改变:
$query = "SELECT * FROM `admin` WHERE `usname` = $username";
$admin_result = mysql_query($query,$link);
$admin_result = mysql_fetch_array($query,MYSQL_ASSOC);
至
$query = "SELECT * FROM `admin` WHERE `usname` = $username";
$admin_result = mysqli_query($query,$link);
$admin_result = mysqli_fetch_array($admin_result,MYSQL_ASSOC);
参见http://php.net/manual/en/function.mysql-fetch-array.php有关 mysql_fetch_array 如何工作的信息
关于php - 如何解决我的编译器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12828879/