为什么 PHP PDO SQLite 总是创建一个新的空数据库文件?

问题描述 投票:0回答:2

我创建了与数据库的连接,但我不知道为什么它总是创建一个新的空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";
php sqlite pdo
2个回答
12
投票

这是预期的行为。当调用 SQLite 时,它会查找指定的文件名。

    $db = new PDO("sqlite:".__DIR__."/database.sql");

如果未找到database.sql文件,它将尝试创建该文件。

顺便说一句,为了清楚起见,您可能需要将文件扩展名从 .sql 更改为 .sqlite。


-1
投票

您需要将扩展名更改为适当的文件类型,因为 .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。

© www.soinside.com 2019 - 2024. All rights reserved.