热铁盒帮助文档热铁盒帮助文档
  • 青柠起始页

    • 常见问题
    • Firefox 扩展安装教程
    • CRX 文件安装教程
  • 空投快传

    • 常见问题
    • 实况照片
  • 网页托管

    • 绑定自己的域名
    • 调用常见资源文件
    • 数据库
    • 自动部署
    • 站点地图
  • 热铁盒账号

    • 邮箱后缀
    • 高级账号退款
    • 解封账号
  • 服务协议

    • 服务条款
    • 隐私政策
  • 联系客服

数据库

在热铁盒网页托管,您可以通过用 PHP 读写 JSON 文件来实现简单的 JSON 键值数据库。

创建数据库

在文件列表里新建一个 JSON 文件,例如 .data.json,文件内容为 {}。这样就创建了一个空的 JSON 键值数据库。

小技巧

使用以点(.)开头的文件名可以隐藏文件,使文件只能在后端通过 PHP 读取,无法在前端(通过浏览器或 JS 代码)直接访问。建议将数据库、密钥等敏感文件设置为隐藏文件。

读取数据库

要读取 JSON 数据库中的数据,可以使用 PHP 的 file_get_contents 函数读取 JSON 文件内容,然后通过 json_decode 将其转换为 PHP 数组。

<?php
$data = json_decode(file_get_contents(".data.json"), true);

请注意,如果您的 JSON 文件位于某个文件夹中,不管 PHP 文件在哪里,都需要使用完整的绝对路径。在热铁盒网页托管,/ 是文件名的一部分,因此不支持相对路径。假设您的 JSON 文件在 databases 文件夹中,那么您的代码应该是这样的:

<?php
$data = json_decode(file_get_contents("databases/.data.json"), true);

写入数据库

要向 JSON 数据库中添加数据,需要先读取现有数据,将新数据添加到数组中,然后将更新后的数组用 file_put_contents 函数写回 JSON 文件。

<?php
$data = json_decode(file_get_contents(".data.json"), true);
$data["key"] = "value";
file_put_contents(".data.json", json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));

示例

以下是一个简单的示例,演示如何使用 JSON 文件作为数据库来统计每个名字访问的次数。

<?php
const DATA_FILENAME = ".visits.json";
if (isset($_GET["name"])) {
	$name = $_GET["name"];  // 从网址参数中获取名字
	$data = json_decode(file_get_contents(DATA_FILENAME), true);  // 读取数据库
	if (!isset($data[$name])) {
		$data[$name] = 0;  // 如果名字不存在于数据库中,初始化为 0
	}
	$data[$name]++;  // 更新数据库的值
	file_put_contents(DATA_FILENAME, json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));  // 写入数据库
}
?>

<!DOCTYPE html>
<html>
	<head>
		<title>统计</title>
	</head>
	<body>
		<?php
		if (isset($_GET["name"])) {
			echo "<p>欢迎," . htmlspecialchars($name) . "!您访问了本站 $data[$name] 次。</p>";
		}
		?>
		<form>
			<label for="name">名字:</label>
			<input type="text" id="name" name="name">
			<input type="submit" />
		</form>
	</body>
</html>

第三方 SQL 数据库

热铁盒网页托管的 PHP 支持连接到第三方 SQL 数据库,例如阿里云 RDS。如果您在第三方平台上创建数据库并打算在热铁盒网页托管中调用,建议选择位于美国西部的数据库实例以获得最低的网络延迟。