所以这是我的代码:
$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";
答案 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())
希望这有帮助。