连接到数据库时php出错

连接到数据库时php出错,php,mysql,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("

我试图运行这段代码来创建一个简单的登录表单,并连接到我的代码所在的数据库

<?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是resource,布尔值在第11行的C:\xampp\htdocs\example\login.php中给出

谁能告诉我我做错了什么??
谢谢

您与MySQL服务器的连接未成功。由于您检查了
$login
的值,我们可以假定
mysql\u select\u db()
语句失败或查询不起作用。请检查您的数据库名称,然后重试


为了避免将来出现此类问题,请检查
mysql\u select\u db()
mysql\u query()

的返回值,以确保您与mysql服务器的连接不成功。由于您检查了
$login
的值,我们可以假定
mysql\u select\u db()
语句失败或查询不起作用。请检查您的数据库名称,然后重试

为了避免将来出现此类问题,如果查询因某种原因失败,请根据will
mysql\u query
return
false
检查
mysql\u db()
mysql\u query()
的返回值

最常见的两个原因是:

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

  • mysql\u-select\u-db(“登录模块”、$login)
  • $result=mysql\u查询(“从人物中选择*)
  • 如果失败,这两种情况都返回false

    编辑:
    在本例中,问题是您正在数据库名称中使用空格。要使其起作用,您必须使用括号将名称括起来
    []

    mysql_select_db("[login module]",$login);
    
    根据will
    mysql\u查询
    如果查询因某种原因失败,则返回
    false

    最常见的两个原因是:

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

  • mysql\u-select\u-db(“登录模块”、$login)
  • $result=mysql\u查询(“从人物中选择*)
  • 如果失败,这两种情况都返回false

    编辑:
    在本例中,问题是您正在数据库名称中使用空格。要使其起作用,您必须使用括号将名称括起来
    []

    mysql_select_db("[login module]",$login);
    

    我不知道这是否属实,但我认为,在DB名称中不能使用空格: 您的DB名称不能是“登录\ U模块”吗

    
    mysql_select_db(“登录模块”$login);
    

    €dit:您必须在[括号]中包含您的DB名称:

    
    mysql_select_db(“[login module]”,$login);
    

    我不知道这是否属实,但我认为,在DB名称中不能使用空格: 您的DB名称不能是“登录\ U模块”吗

    
    mysql_select_db(“登录模块”$login);
    

    €dit:您必须在[括号]中包含您的DB名称:

    
    mysql_select_db(“[login module]”,$login);
    

    由于某种原因,您的查询失败,这意味着$result不是资源。好的做法是检查您的mysql\u查询是否成功。您必须编写您的mysql表。您可以使用此代码$result=mysql_query(“SELECT*FROM people”)或die(mysql_error());由于某种原因,您的查询失败,这意味着$result不是资源。好的做法是检查您的mysql\u查询是否成功。您必须编写您的mysql表。您可以使用此代码$result=mysql_query(“SELECT*FROM people”)或die(mysql_error());或者查询因其他原因失败(即该表不存在)@nickb:是的,这是可能的,我更新了答案以反映它。但是,数据库名称(“登录模块”)可能是本例中的问题。或者查询因其他原因失败(即该表不存在)@nickb:是的,这是可能的,我更新了答案以反映这一点。但是,在本例中,数据库名称(“登录模块”)可能是问题所在。您可以在名称中使用空格,但必须将它们括起来。看我的答案。哦,没错:)谢谢……你可以在名字中用空格,但你必须把它们括起来。看我的答案。哦,没错:)谢谢。。。