# 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 已经有写! ~~~