错误:mysql_fetch_array()期望参数1是资源

时间:2015-12-27 01:13:50

标签: php mysql mysqli

所以这是我的代码:

$sql = "SELECT * FROM `items`";
$result = mysqli_query($conn, $sql);

while($prommes = mysql_fetch_array($result)){
}

当我运行它时。我收到此错误:

  

mysql_fetch_array()期望参数1是资源。

我的数据库有问题吗?

这是我在html文档中需要的连接。可以在这里使查询无效吗?

$servername = "localhost";
$username = "root";
$password = "";

// Create connection
$conn = mysqli_connect($servername, $username, $password);


// Check connection
  if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 
// echo "Connected successfully";

2 个答案:

答案 0 :(得分:0)

据我所知,您从不选择数据库,因此$ result不是结果集(因为查询永远不会正确执行)。它可能是false。你可以var_dump来验证它。尝试在查询中添加数据库名称。如果您的数据库名为db,例如:

SELECT * FROM `db`.`items`;

如果您不想每次都明确指定数据库名称,那么您只想将数据库名称添加到MySQLi连接字符串中,如下所示: http://php.net/manual/en/mysqli.query.php

答案 1 :(得分:0)

在while循环中,mysql_fetch_array不正确。它应该是

while($prommes = mysqli_fetch_array($result))

另外,您的连接需要

$conn = mysqli_connect($servername, $username, $password, $database);

其中$database是数据库的名称(不是主机名)。

另外,使用面向对象的方法可以更好地避免这种情况。例如,您的连接可能是;

$conn = new mysqli($servername, $username, $password, $database);

,您的查询和循环可以是;

$result = $conn->query($sql);

while($prommes = $result->fetch_array())

希望这有帮助。