我有一个非常标准的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版本与其他网站的区别)?
有人可以帮助我追查问题吗?非常感谢。对不起,如果这是一个非常简单的东西,我忽略了,我已经有一段时间了。
答案 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,您可以在此功能中选择数据库。