PhP mysql - 如何显示数据库中的记录?

PhP mysql - how to show records from database?

这是我在这个社区的第一个 post。我是 PHP 和 MySQL 的新手。这是我要运行的代码。

我正在使用 MAMP。我已经测试过我能够与 "pet" 数据库建立连接。检查了我的用户名和密码,也是正确的。我在数据库中有 "horse" 字段 "petType" 的数据。

下面的代码肯定有问题。我挠头看了看书和网上,但无法弄清楚我做错了什么?使用下面的代码,我的网页变成空白。

我正在尝试将数据库中的记录作为第一部分显示,稍后担心格式化。


<?php

$host = 'localhost';
$username = ' ';
$password = ' ';
$database = 'pet';

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

$query= "SELECT * FROM pet WHERE petType = 'horse'";

while($row = mysqli_fetch_array($query)):
{   
$petDescription = $query [$petDescription];
$petName = $query [$petName];
$petType = $query [$petType];

echo "$petType <br> <br> $petName <br> $petDescription";

}

?>

好的,这是概要。

  • 您没有查询。这意味着您需要使用 mysqli_query() function, which requires a successful DB connection 建立并作为第一个参数传递。

  • 然后您在 while 循环中分配 $row 以获取数组,但您使用 $query 作为预期行的替换被回声。应该是 $row 而不是 $query.

(编辑)你在 while($row = mysqli_fetch_array($query)): 中也有一个冒号 <= 删除它。

现在,很难确定 table 中的实际列名是什么,所以我将用通用的 column_xcolumn_ycolumn_z 目前。

您可以将它们替换为您 table 中的那些。下面会详细介绍这一点。

用以下内容替换您当前的代码块:

$query = mysqli_query($conn, "SELECT * FROM pet WHERE petType = 'horse'");

    while($row = mysqli_fetch_array($query))
    {   
        $petType = $row['column_x'];
        $petName = $row['column_y'];
        $petDescription = $row['column_z'];

        echo "$petType <br> <br> $petName <br> $petDescription";

    }

如果你的其他栏目确实叫petTypepetNamepetDescription,那么你可以将上面的替换为:

$petType = $row['petType'];
$petName = $row['petName'];
$petDescription = $row['petDescription'];

它的工作原理是这样的,我用图形的方式展示给大家:

$petType = $row['petType'];
    ^        ^      ^
    |        |      | column name in table
    |        |
    |        | variable in loop
    |
    | variable to echo

但是,有些事情似乎有点不清楚,您的数据库和 table 都具有相同的名称 pet

确保确实如此。

or die(mysqli_error($conn)) 添加到 mysqli_query()

旁注:错误报告只能在试运行中进行,绝不能在生产中进行。


脚注: