# 1.新建data_v3/v1/install.php
~~~
<?php
/**
* Email:y7wanghui@gmail.com
* Date: 2020/10/31 0031
*/
// 获取 PDO DSN的字符串
//返回规范化的绝对路径名 realpath ( string $path ) : string
$root = realpath(__DIR__);
//读取数据库
$database = $root . '/../data/data.sqlite';
//连接数据库
$dsn = 'sqlite:' . $database;
$error = '';
// 安全措施,以避免任何人重置数据库(如果已存在)
//is_readable 判定文件是否可读 filesize 取得文件大小
if (is_readable($database) && filesize($database) > 0)
{
$error = '请在重新安装之前手动删除现有数据库';
}
// 为数据库创建一个空文件
//dirname 返回部分目录 sprintf 格式化字符串
if (!$error)
{
//创建数据库文件 @屏蔽错误信息如warning 看起来美观,错误用$error代替
$createdOk = @touch($database);
if (!$createdOk)
{
$error = sprintf(
'无法创建数据库,请允许服务器在以下位置创建新文件 \'%s\'',
dirname($database)
);
}
}
// 抓取我们要在数据库上运行的SQL命令
if (!$error)
{
$sql = file_get_contents($root . '/../data/init.sql');
if ($sql === false)
{
$error = '找不到SQL文件';
}
}
//连接到新数据库并尝试运行SQL命令
if (!$error){
$pdo = new PDO($dsn);
$result = $pdo->exec($sql);
if ($result === false)
{
$error = '无法运行SQL,请删除'.$database .'错误:' . print_r($pdo->errorInfo(), true);
}
}
// 查看我们创建了多少行(如果有)
$count = array();
if (!$error)
{
$sql = "SELECT COUNT(*) AS c FROM post";
$stmt = $pdo->query($sql);
if ($stmt)
{
$count = $stmt->fetchColumn();
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>安装博客</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<style type="text/css">
.box {
border: 1px dotted silver;
border-radius: 5px;
padding: 4px;
}
.error {
background-color: #ff6666;
}
.success {
background-color: #88ff88;
}
</style>
</head>
<body>
<?php if ($error): ?>
<div class="error box">
<?php echo $error ?>
</div>
<?php else: ?>
<div class="success box">
数据库和演示数据创建成功。
<?php if ($count): ?>
<?php echo $count ?> 条数据演示成功.
<?php endif ?>
</div>
<?php endif ?>
</body>
</html>
~~~
# 2.执行安装文件
访问 http://192.168.101.132/data_v3/v1/install.php 自己更换域名
~~~
每次执行安装都要删除data/data.sqlite 并且出现绿色背景,数据库和演示数据创建成功。
3 条数据演示成功.说明成功了。不删除会显示相应的错误信息 install.php 已经有写!
~~~