将不会显示来自mysql数据库的记录表警告:mysqli_fetch_row()

时间:2013-10-22 21:06:45

标签: php mysql database record

我目前正在尝试显示我在putty中创建的表并编写了一个代码,以便我可以从数据库中显示该表,似乎我在逻辑上编写了代码,但似乎有些部分失败了。

它给了我这个警告

警告:mysqli_fetch_row()要求参数1为mysqli_result,第25,31和34行给出布尔值

这是$ Row = mysqli_fetch_row($ result);和mysqli_free_result($ result);

require_once ("settings.php");

$conn = @mysqli_connect($host, $user, $pswd, $dbnm)
        or die ("Failed to connect to server");

    @mysqli_select_db($conn, $dbnm)
        or die ("Database not available");

    $query = "SELECT car_id, make, model, price, yom FROM cars";
    $result = mysqli_query($conn, $query);

    echo "<table width='100%' border='1'>";
        echo "<tr><th>Car_id</th><th>Make</th><th>Model</th><th>Price</th></tr>";
            $Row = mysqli_fetch_row($result);
                do {
                echo "<tr><td>{$Row[0]}</td>";
                echo "<td>{$Row[1]}</td>";
                echo "<td>{$Row[2]}</td>";
                echo "<td>{$Row[3]}</td></tr>";
            $Row = mysqli_fetch_row($result);
        } while ($Row);
    echo "</table>";
    mysqli_free_result($result);
    mysqli_close($conn);
?>

4 个答案:

答案 0 :(得分:0)

您要两次获取该行。将Do语句更改为以下内容:

  do {
            echo "<tr><td>{$Row[0]}</td>";
            echo "<td>{$Row[1]}</td>";
            echo "<td>{$Row[2]}</td>";
            echo "<td>{$Row[3]}</td></tr>";
    } while ($Row);

答案 1 :(得分:0)

如果您的查询因连接设置错误而失败,则会返回false ...因此布尔值。在查询后尝试“或死(MySQL_error())以显示错误

答案 2 :(得分:0)

最有可能的是,查询中存在错误,因此mysqli_query返回false(布尔值抱怨),或者数据库连接失败。尝试直接在phpmyadmin / different tool / mysql命令行中执行查询,看看它是否在那里工作。 mysqli_error()也可能有助于找到错误。

答案 3 :(得分:0)

您应该在mysqli_connect之后删除“或死...”部分。 他们使用mysqli_connect表达式将boolean的结果转换为or

见:

php5 -r '$x="tmp";$y=($x or 3);var_export($y);'

结果是:true