使用PHP从MySQL / MariaDB数据库检索信息

2020年12月31日19:42:27 发表评论 102 次浏览

介绍

PHP旨在轻松集成到网站中。 PHP的最常见用途之一是从数据库获取内容并将其输出到HTML页面上。本教程将介绍如何连接到MySQL / MariaDB数据库, 如何从简单表中提取信息以及如何在简单HTML表中显示信息。

要了解如何使用PHP从网站获取信息并将其放入MySQL / MariaDB数据库, 请参阅我们的相关文章使用PHP将信息从HTML表单插入MySQL / MariaDB数据库.

要求

  • 运行Linux的Cloud Server(任何发行版)
  • 已安装并运行Apache, MySQL / MariaDB和PHP。

注意:默认情况下, Apache, MySQL / MariaDB和PHP已安装并在标准Linux安装上运行。如果服务器是使用最小安装创建的, 则在继续之前, 你将需要安装和配置Apache, MySQL / MariaDB和PHP。

创建MySQL / MariaDB数据库和用户

在本教程中, 我们将为一个假想的餐厅创建一个网页。该网页将显示该餐厅的顾客评论。

登录到命令行MySQL / MariaDB客户端:

mysql -u root -p

创建评论数据库:

CREATE DATABASE reviews;

切换到该数据库:

USE reviews;

对于此示例, 我们将仅创建一个表。它将具有三个字段:

  • ID字段:此字段将设置为自动递增。
  • 审阅者的姓名:文本字段, 最多100个字符。
  • 星级:1-5 TINYINT的数字评分
  • 审核详细信息:一个文本字段, 限制为大约500个单词。 VARCHAR(4000)

创建表:

CREATE TABLE user_review (
  id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY, reviewer_name CHAR(100), star_rating TINYINT, details VARCHAR(4000)
  );

在表中添加两个示例评论:

INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Ben', '5', 'Love the calzone!');

INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Leslie', '1', 'Calzones are the worst.');

为数据库创建一个用户。出于安全原因, 始终最好为每个数据库创建一个唯一的用户, 尤其是当从网站访问该数据库时。

以下命令将创建一个用户review_site带密码JxSLRkdutW并授予用户访问权限评论数据库:

GRANT ALL ON reviews.* to review_site@localhost IDENTIFIED BY 'JxSLRkdutW';

创建PHP脚本

注意:为了显示示例, 简化了本教程中的代码。创建网站时, 我们强烈建议你遵循最佳安全性做法, 以确保你的PHP脚本不会公开对服务器的访问。有关更多信息, 请参见文章基本的PHP安全性.

在你的网站空间中创建文件showreviews.php并将其打开以进行编辑。例如, 要在/ var / www / html中创建文件, 命令是:

sudo nano /var/www/html/showreviews.php

该页面将在HTML内嵌入PHP, 因此该页面将从基本的HTML声明开始:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>

每个PHP脚本都必须以PHP开头标签开头:

<?php

接下来, 在服务器位置添加一个MySQL / MariaDB连接块(本地主机), 数据库名称以及数据库用户名和密码。

$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";

然后, 我们添加一个部分以连接到数据库, 如果连接失败, 则给出一个错误:

$dbconnect=mysqli_connect($hostname, $username, $password, $db);

if ($dbconnect->connect_error) {
  die("Database connection failed: " . $dbconnect->connect_error);
}

?>

接下来, 添加HTML以开始我们将用来显示数据的表:

<table border="1" align="center">
<tr>
  <td>Reviewer Name</td>
  <td>Stars</td>
  <td>Details</td>
</tr>

在此之后加上PHP代码, 该代码将查询数据库并遍历结果, 并在其自己的表行中显示每个评论:

<?php

$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
   or die (mysqli_error($dbconnect));

while ($row = mysqli_fetch_array($query)) {
  echo
   "<tr>
    <td>{$row['reviewer_name']}</td>
    <td>{$row['star_rating']}</td>
    <td>{$row['details']}</td>
   </tr>;

}

?>

最后, 关闭表格和HTML:

</table>
</body>
</html>

要测试脚本, 请访问showreviews.php在浏览器中。

PHP MySQL

完整的PHP脚本是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<?php

$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";

$dbconnect=mysqli_connect($hostname, $username, $password, $db);

if ($dbconnect->connect_error) {
  die("Database connection failed: " . $dbconnect->connect_error);
}

?>

<table border="1" align="center">
<tr>
  <td>Reviewer Name</td>
  <td>Stars</td>
  <td>Details</td>
</tr>

<?php

$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
   or die (mysqli_error($dbconnect));

while ($row = mysqli_fetch_array($query)) {
  echo
   "<tr>
    <td>{$row['reviewer_name']}</td>
    <td>{$row['star_rating']}</td>
    <td>{$row['details']}</td>
   </tr>\n";

}

?>
</table>
</body>
</html>
一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: