【问题标题】:PHP - Echo'ing something from a MySQL DB [duplicate]PHP - 从 MySQL 数据库中回显某些内容 [重复]
【发布时间】:2017-10-12 13:51:47
【问题描述】:

我想,我的 PHP 代码可能需要帮助... 我试图在 MySQL 数据库中回显信息,它给了我错误:Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /usr/local/ampps/www/php/db.php on line 18

我的代码是:

<?php
$servername = "blabla"; //changed, connecting works
$username = "blabla";
$password = "blabla";
$database = "blabla";

// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
echo "Connection success \n";
}

$sql = mysql_query("SELECT * FROM Schueler");
while($data = mysql_fetch_array($sql)) //This is line 18...
{
echo "ID: " . $data['ID'] . " Vorname: " . $data['Vorname'] . " Nachname: " . $data['Nachname'] . " Klasse: " . $data['Klasse'] . "<br>";
}

$conn->close();

?>

如果有人可以帮助我会很好:)

编辑:

我只使用 MySqli 修复了它,这是我现在的工作代码:

// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} else {
  echo "Connection success  \n";
}

$sql = "SELECT ID, Vorname, Nachname FROM Schueler";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["ID"]. " - Name: " . $row["Vorname"]. " " . $row["Nachname"]. "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();

感谢您的快速建议。

【问题讨论】:

  • 好像没有连接到db
  • 当我在代码中实现时,它在错误上方的一行显示“连接成功”,所以我想连接到数据库。
  • 您正在使用mysqli,然后使用mysql_fetch_array 获取数组。这两个不应该是一样的吗?
  • 你没有正确连接你使用mysqli进行连接和mysql_fecth获取这些是两个不同的数据库驱动程序只使用mysqli
  • 那么正确的代码是什么?我对 sql 和 php 还不是很熟悉...

标签: php mysql database mysqli connection


【解决方案1】:

您已使用 mysqli 进行连接设置,然后使用简单的 mysql 函数来获取结果集和 fetch_array 逻辑。在这种情况下,您需要保持统一。

我已将mysql_query() 调用更改为mysqli_query() 调用,同样将mysql_fetch_array() 调用更改为mysqli_fetch_array() 调用。

最终代码变成:

$sql = mysqli_query("SELECT * FROM Schueler", $conn);
while($data = mysqli_fetch_array($sql)) 
{
echo "ID: " . $data['ID'] . " Vorname: " . $data['Vorname'] . " Nachname: " . $data['Nachname'] . " Klasse: " . $data['Klasse'] . "<br>";
}

【讨论】:

  • 警告:mysqli_query() 需要至少 2 个参数,1 个在 /usr/local/ampps/www/php/db.php 第 17 行中给出 __________ 警告:mysqli_fetch_array() 需要参数 1 mysqli_result, null 在第 18 行的 /usr/local/ampps/www/php/db.php 中给出 __________ 这样我就会得到另一个警告。
  • 使用修改后的代码,如上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
相关资源
最近更新 更多