PHP PDO SQLite 连接

6
我创建了一个连接到数据库,但我不知道为什么它总是创建一个新的空数据库.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";

2
这就是 PDO SQLite 的工作原理 - 参考这个帖子 - Jirka Hrazdil
2
可能是[使用PDO创建新的SQLite数据库]的重复问题(https://dev59.com/BHI-5IYBdhLWcg3wW3Gp) - u_mulder
当我重命名数据库文件时,它总是创建一个新文件而不是像应该的那样给我一个错误。如果您想检查文件是否存在,可以使用 file_exists() - user557846
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");

如果您需要创建一个数据库,可以调用命令行(PHP可以使用exec()实现)来调用sqlite shell将数据库文件保存到磁盘上。然后,使用PDO连接到PHP。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接