0

我对 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 方法,而且我之前在其中添加了一个 else 条件并且它已检查。然后页面显示,但我收到错误:

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

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

我看到了错误并尝试了:

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

并且修复了错误但没有传递任何数据(因为显然 $mysqli_result 没有价值)。我不知道为什么会出现错误(它与其他站点的 MySQL 或 PHP 版本不同)?

有人可以帮我找出问题所在吗?非常感谢。抱歉,如果我忽略了一些超级简单的事情,我已经做了一段时间了。

4

5 回答 5

5

你没有选择数据库

$mysqli = mysqli_connect("localhost","username","password","database");
于 2012-12-12T05:00:50.273 回答
2

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

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

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

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

于 2012-12-12T04:59:29.320 回答
1

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

于 2012-12-12T05:02:34.570 回答
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
                        }
于 2012-12-12T05:07:13.123 回答
-1

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

于 2012-12-12T05:02:33.703 回答