# 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 已經有寫!
~~~