无法从MySQL表中显示数据

时间:2012-12-12 04:53:38

标签: php mysql mysqli

我有一个非常标准的MySQL数据库调用,由于某种原因我无法使代码工作。这就是我所拥有的:

$mysqli = mysqli_connect("localhost","username","password");
if (!$mysqli)
  {
  die('Could not connect: ' . mysqli_error($mysqli));
  }
session_start();
$sql = "SELECT * FROM jobs ORDER BY id DESC";
$result = $mysqli->query($sql);
$num_rows = mysqli_num_rows($result);

现在,首先,我知道它正在连接正确,因为我没有得到die方法加上我在之前添加了一个其他条件并且它已经检出。然后页面显示但我收到错误:

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in blablabla/index.php on line 11

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in blablabla/index.php on line 12

我已经仔细检查了我的数据库,并且有一个名为jobs的表,其中包含一行“id”(它是主行)。令我困惑的是这是我从我构建的另一个网站上复制和粘贴的代码,由于某种原因,代码在这个代码上不起作用(我显然复制并粘贴它然后只是相应地更改了表名和行)。

我看到了错误并尝试了:

$num_rows = $mysqli_result->num_rows;
$row_array = $mysqli_result->fetch_array;

并修复了错误但导致没有数据传递(因为很明显$ mysqli_result没有值)。我不知道为什么错误要求(这是MySQL或PHP版本与其他网站的区别)?

有人可以帮助我追查问题吗?非常感谢。对不起,如果这是一个非常简单的东西,我忽略了,我已经有一段时间了。

5 个答案:

答案 0 :(得分:5)

您没有选择数据库

$mysqli = mysqli_connect("localhost","username","password","database");

答案 1 :(得分:2)

问题是您没有选择数据库。

将此代码用于选择数据库。

$mysqli = mysqli_connect("localhost","username","password");
mysqli_select_db("db_name",$mysqli);

你必须选择数据库才能触发mysql查询,否则会给你错误。

答案 2 :(得分:1)

我相信schtever是正确的,我认为你没有选择数据库。它不在代码片段中,如果您在线搜索,您会看到其他具有类似错误的人,这是因为未选择数据库。如果您在检查其他任何内容之前选择了数据库,请告诉我们。感谢。

答案 3 :(得分:1)

试试这个:

 session_start();
 $mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
      if ($mysqli->connect_errno)
       {
           echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
           $mysqli->close();
       }
           $query ="SELECT * FROM jobs ORDER BY id DESC";
            $values = $mysqli->query($query);
                if($values->num_rows != 0)
                    {
                        while($row = $values->fetch_assoc())
                        { 
                            //your results echo here
                        } 
                    }
                    else
                        {
                            //if no results say so here
                        }

答案 4 :(得分:-1)

请参阅本手册mysqli_connect,您可以在此功能中选择数据库。