连接到数据库时php中的错误

时间:2011-11-28 19:10:26

标签: php mysql

我正在尝试运行此代码来创建一个简单的登录表单并连接到数据库,我的代码是

<?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中给出

任何人都可以告诉我,我做错了什么? 谢谢

3 个答案:

答案 0 :(得分:1)

您与MySQL服务器的连接失败。由于您检查了$login的值,我们可以假设mysql_select_db()语句失败或查询无效。请检查您的数据库名称,然后重试。

为避免将来出现此类问题,请检查mysql_select_db()mysql_query()的返回值。

答案 1 :(得分:1)

如果查询由于某种原因失败,则根据manualmysql_query返回false

两个最常见的原因是:

  1. 查询本身不正确
  2. 您无权执行查询。
  3. 要缩小范围,您应尽可能引入错误检查,并在需要时中止。在您的示例中,您有两种可能的情况:错误可能出现:

    1. mysql_select_db("login module",$login);
    2. $result= mysql_query("SELECT * FROM people");
    3. 如果失败,这两种情况都会返回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);