现在下载应用并免费测试10天
货币 选择语言 选择地区

在bluetronix CMS中连接PHP和MySQL

在本教程中,你将创建一个自己的数据库表并将其与CMS页面连接。通过实际示例,你将学习SQL命令INSERT、REPLACE、SELECT和UPDATE,并了解如何通过HTML占位符在网页上输出数据库值。

创建示例页面

在本教程中,你首先需要创建一个新的示例页面.

例如:

PHP MySQL示例

页面可以最初完全为空.

然后在普通HTML编辑器中打开该页面,并插入任何页面部分。此HTML区域稍后将作为从数据库加载的数据的模板.

创建数据库表

在你可以存储数据之前,你需要一个自己的数据库表.

为此,请打开:

数据库 → 新建表

在此示例中,我们使用一个包含ID、日期、标题、描述和图像列的表.

ID包含记录的唯一ID。日期存储日期和时间。标题包含标题,描述包含更长的描述文本,而图像包含图像名称.

表、列和变量名称在开发者教程中应始终使用英文.

打开PHP代码

表创建后,返回到你的示例页面.

在那里打开:

PHP代码

从此区域你可以直接访问数据库.

使用INSERT或REPLACE存储数据

在第一个示例中,你将在之前创建的数据库表中存储一条记录.

首先设置所需的PHP变量。

示例:

$ID = 1;
$Date = date("Y-m-d H:i:s");
$Title = "My Title";
$Description = "My Description";
$Image = "my-image.jpg";

这些值可以随后使用MySQL预处理语句进行保存。

在数据库访问中,你应该始终使用预处理语句。这样,值会与实际的SQL命令分开处理。

使用REPLACE的示例:

$stmt = $mysqli->prepare("REPLACE INTO ExampleTable (ID, `Date`, Title, Description, Image) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("issss", $ID, $Date, $Title, $Description, $Image);
$stmt->execute();

然后访问该页面一次。

然后打开:

数据库 → 显示

在那里应该可以看到新生成的数据记录。

INSERT和REPLACE之间的区别

INSERT添加一条新的数据记录。

如果已经存在具有相同唯一ID或同一主键的数据记录,则普通的INSERT可能会引发重复键错误。

REPLACE可以用于需要用相同唯一ID替换现有数据记录的情况。

对于具有固定ID的测试示例,REPLACE通常更实用,因为可以多次访问该页面。

使用SELECT读取数据

在下一步中,你将再次从数据库中读取保存的数据记录。

示例:

$stmt = $mysqli->prepare("SELECT `Date`, Title, Description, Image FROM ExampleTable WHERE ID = ?");
$stmt->bind_param("i", $ID);
$stmt->execute();
$result = $stmt->get_result();

if($row = $result->fetch_assoc()) {
$Date = $row["Date"];
$Title = $row["Title"];
$Description = $row["Description"];
$Image = $row["Image"];
}

提取的值随后将位于变量$Date、$Title、$Description和$Image中。

连接数据库和$LayoutHTML

全局CMS变量$LayoutHTML在渲染过程中包含当前生成的页面HTML.

因此,你可以用MySQL表中的数据替换HTML代码中的自定义占位符。

在HTML代码中设置占位符

再次打开你的示例页面的HTML代码.

你现在可以用自定义占位符替换之前插入的页面部分的内容。

例如:

__MyDate__
__MyTitle__
__MyDescription__
__MyImage__

一个简化的HTML示例:

<section>
   <div class="container">
      <img src="__MyImage__" alt="">
      <small>__MyDate__</small>
      <h2>__MyTitle__</h2>
      <p>__MyDescription__</p>
   </div>
</section>

对于这个第一个MySQL示例,可以首先删除现有的翻译标记。这样,更容易识别哪些内容是直接通过PHP和MySQL替换的。

在布局中插入数据库值

在使用SELECT加载数据后,替换$LayoutHTML中的占位符。

示例:

$LayoutHTML = str_replace("__MyDate__",$Date,$LayoutHTML);
$LayoutHTML = str_replace("__MyTitle__",$Title,$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__",$Description,$LayoutHTML);
$LayoutHTML = str_replace("__MyImage__",$Image,$LayoutHTML);

流程为:

MySQL数据库 → SELECT → PHP变量 → str_replace() → $LayoutHTML → 完成的网站

数据库的内容将直接显示在现有的HTML布局中。

直接通过数据库测试更改

打开:

数据库 → 显示

然后编辑现有的数据记录。

例如,你可以将标题从 My Title 改为 New My Title。

你也可以通过相应的 BX-Image-Button 更改图像。

在保存之后,重新加载网页,修改后的数据将直接显示在页面布局中。

这样,形成了直接的连接:

数据库 → PHP → $LayoutHTML → 网页

使用UPDATE更改数据

使用 UPDATE 你可以直接通过 PHP 修改已存在的数据记录。

在这里,通过条件设置要修改的数据记录。

在执行更新后,你可以再次用 SELECT 加载数据,并通过 $LayoutHTML 在页面上显示。

总结

通过 PHP 和 MySQL,你可以在 bluetronix CMS 中存储、读取和修改数据。

INSERT 或 REPLACE 用于保存数据,SELECT 用于读取数据,UPDATE 用于修改现有数据记录。

通过 $LayoutHTML,你可以将加载的数据直接插入现有的 HTML 结构中。

这可以将数据库内容干净地与 CMS 页面 HTML 布局连接起来。

常见问题

客户常问我们的问题

我需要什么才能进行这个 PHP 和 MySQL 教程?

你需要一个开发者访问权限到 bluetronix CMS。此外,你还应该了解 CMS 网站渲染过程是如何工作的,以及变量 $LayoutHTML 的作用。

我在哪里创建新的数据库表?

在 CMS 中打开 数据库 → 新表 部分。

示例中使用了哪些列?

在教程中使用了 ID、Date、Title、Description 和 Image 列。

为什么我应该使用预处理语句?

预处理语句将传递的值与实际的 SQL 命令分开,因此是为数据库访问而设计的。

INSERT 和 REPLACE 有什么区别?

INSERT 添加一条新的数据记录。REPLACE 可以用相同的唯一 ID 或主键替换现有的数据记录。

我如何从数据库中读取数据?

你需要使用 SELECT 命令。随后,可以将加载的值存储在 PHP 变量中,例如 $Title、$Description 或 $Image。

MySQL 数据如何转入页面的 HTML 中?

首先在 HTML 代码中设置自己的占位符,然后在 $LayoutHTML 中通过 str_replace() 将其替换为加载的数据库值。

我如何检查数据库与网站之间的连接是否正常?

打开 数据库 → 显示,更改一个已有的数据记录,然后重新加载网站。新值应该会立即在页面布局中显示。

UPDATE 用于什么?

使用 UPDATE 可以通过 PHP 直接修改已有的数据记录。

我可以在页面布局中使用数据库中的图片吗?

可以。在示例中,图片值被存储在变量 $Image 中,并通过一个名为 __MyImage__ 的占位符在 $LayoutHTML 中使用。

CMS