我正在尝试运行此代码来创建一个简单的登录表单并连接到数据库,我的代码是
<?php
$avaialableuser=$_POST["username"];
$avaialablepass=$_POST["password"];
$login = mysql_connect("localhost","ahmed","");
if (!$login)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("login module",$login);
$result= mysql_query("SELECT * FROM people");
while($row = mysql_fetch_array($result))
{
if(($row['username']==$avaialableuser) && ($row['password']==$avaialablepass)){
echo "WELCOME";
}
else
echo "sorry your username or password entered is incorrect please try again";
}
mysql_close($login);
?>
>
我继续收到此错误[9:03:25 PM] ahmed atwa:警告:mysql_fetch_array()要求参数1为资源,布尔值在第11行的C:\ xampp \ htdocs \ example \ login.php中给出
任何人都可以告诉我,我做错了什么? 谢谢
答案 0 :(得分:1)
您与MySQL服务器的连接失败。由于您检查了$login
的值,我们可以假设mysql_select_db()
语句失败或查询无效。请检查您的数据库名称,然后重试。
为避免将来出现此类问题,请检查mysql_select_db()
和mysql_query()
的返回值。
答案 1 :(得分:1)
如果查询由于某种原因失败,则根据manual将mysql_query
返回false
。
两个最常见的原因是:
要缩小范围,您应尽可能引入错误检查,并在需要时中止。在您的示例中,您有两种可能的情况:错误可能出现:
mysql_select_db("login module",$login);
$result= mysql_query("SELECT * FROM people");
如果失败,这两种情况都会返回false。
修改强>
在这种情况下,问题是您在数据库名称中使用了空格。要使其工作,您必须使用括号[]
:
mysql_select_db("[login module]",$login);
答案 2 :(得分:1)
我不知道这是否属实,但我认为,你不能在DB-Names中使用Spaces: 你的DB-Name不能是“login_module”吗?
mysql_select_db("login module",$login);
€dit:您必须在[方括号]中覆盖您的数据库名称:
mysql_select_db("[login module]",$login);