这是我的代码。但是,它不能正常工作,一旦我使用用户名和密码登录它显示错误消息,像这样:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:'wamp'www'lumbiniinternational_hotel'administrator'login.php on line 26
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:'wamp'www'lumbiniinternational_hotel'administrator'login.php on line 27
我的完整代码是:
if(isset($_POST['submit'])){
$query="SELECT * FROM users WHERE username='".$_POST['username']."' AND password='".$_POST['password']."' AND role='administrator'";
$result=mysql_query($query);
$row=mysql_fetch_array($result,MYSQL_ASSOC);
if(mysql_num_rows($result)>0){
header("Location:index.php");
$_SESSION['username']=$row['username'];
}else
$message=get_word($lang,"Wrong username or password.");
}
?>
这两个错误都表明您的查询是错误的。
确保您正确拼写了字段名。
select `field_name` from `table_name`
修改
$result=mysql_query($query);
$result=mysql_query($query) or die(mysql_error());
显示正确的sql错误
最后作为旁注:
-停止使用mysql扩展名,切换到mysqli_或PDO。
-在将POST数据直接用于查询
检查查询是否出错,在mysql_query后面添加一个or die(mysql_error())
if(isset($_POST['submit'])){
$query="SELECT * FROM users WHERE username='".$_POST['username']."' AND password='".$_POST['password']."' AND role='administrator'";
$result=mysql_query($query) or die(mysql_error());
$row=mysql_fetch_array($result,MYSQL_ASSOC);
if(mysql_num_rows($result)>0){
header("Location:index.php");
$_SESSION['username']=$row['username'];
}else
$message=get_word($lang,"Wrong username or password.");
}
另外,我建议您直接使用mysql_fetch_assoc
,不要使用mysql_fetch_array
Mirko