1

我对 PHP 还很陌生,并且还没有开发出知道如何在我预期它们时修复大多数错误的知识。我在连接到刚刚创建的数据库时遇到问题。我正在从一本书中学习这个例子。浏览器不断返回结果:“警告: mysql_fetch_array() 期望参数 1 是资源,布尔值在:'文件路径'中给出”。我认为 $result 有问题,但请看一下。我的代码如下所示:

<?php

    // Open a MySQL connection
    $link = mysql_connect('xxx', 'xxx', 'xxx');
    if(!$link) {
        die('Connection failed' . mysql_error());
    }

    // Select the database to work with 
    $db = mysql_select_db('test');
    if(!$db) {
        die('Selected database unavailable: ' . mysql_error());
    }

    // Create and execute a MySQL query
    $sql = "SELECT artist_name FROM artists";
    $result = mysql_query($sql);

    // Loop through the returned data and output it
    while($row = mysql_fetch_array($result)) {
        printf("Artist: %s<br />", $row['artist_name']);
    }

    // Free the memory associated with the query 
    mysql_free_result($result);

    // Close the connection
    mysql_close($link);

?>
4

2 回答 2

1

如果 mysql_query 失败,它会返回 false,一个布尔值。当您将它传递给 mysql_fetch_array 函数(需要一个 mysql 结果对象)时,我们会收到此错误。确保您正在使用的查询将获取一些结果,或者您正在使用正确的列名。

您应该按照其他人的建议切换到使用 mysqli 或 PDO。

于 2013-05-19T10:16:52.060 回答
-1

您的代码没有问题,问题出在您的查询中。

代替

$result = mysql_query($sql);

$result = mysql_query($sql) or die(mysql_error());

你会发现你的查询有什么问题。

于 2013-05-19T10:33:51.213 回答