我创建了与数据库的连接,但我不知道为什么它总是创建一个新的空database.sql文件。当我重命名数据库文件时,他总是创建一个新文件,而不是给我一个错误。
这是我的代码
try {
$db = new PDO("sqlite:".__DIR__."/database.sql");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
echo "Unable to connect";
echo $e->getMessage();
exit;
}
echo "Connected to the database";
这是预期的行为。当调用 SQLite 时,它会查找指定的文件名。
$db = new PDO("sqlite:".__DIR__."/database.sql");
如果未找到database.sql文件,它将尝试创建该文件。
顺便说一句,为了清楚起见,您可能需要将文件扩展名从 .sql 更改为 .sqlite。
您需要将扩展名更改为适当的文件类型,因为 .sql 是脚本文件(用于 DML 或 DDL 操作的 SQL 语句)而不是实际的 SQLite 数据库文件。通常,SQLite 文件扩展名包括: .db、.sqlitedb、.sqlite、SQLite 3(.sqlite3、.s3db、.sl3)、SQLite 2(.sl2、) .s2db、.db2),还有更多。列出您的目录文件以查找确切的文件扩展名:
$db = new PDO("sqlite:".__DIR__."/database.db");
如果您需要创建数据库,请向 sqlite
shell调用命令行(PHP 可以使用
exec()
执行此操作)以将数据库文件保存到磁盘。然后,使用 PDO 连接到 PHP。