【问题标题】:PHP PDO SQLite connectionPHP PDO SQLite 连接
【发布时间】:2017-03-29 20:45:13
【问题描述】:

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

【问题讨论】:

  • 这就是 PDO SQLite 的工作方式 - 请参阅 this thread
  • “当我重命名数据库文件时,他总是创建一个新文件,而不是给我一个错误。”正如它应该。如果要检查文件是否存在,可以使用file_exists()

标签: php sqlite pdo


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    您需要将扩展​​名更改为适当的文件类型,因为 .sql 是脚本文件(用于 DML 或 DDL 操作的 SQL 语句),而不是实际的 SQLite 数据库文件。通常,SQLite 文件扩展名包括:.db.sqlitedb.sqlite、SQLite 3 (.sqlite3.s3db, .sl3), SQLite 2 (.sl2, .s2db, .db2) 仍然是more。列出您的目录文件以找到确切的文件扩展名:

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

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

    【讨论】:

      猜你喜欢
      • 2013-04-02
      • 2016-03-27
      • 1970-01-01
      • 2013-03-27
      • 2014-02-02
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      相关资源
      最近更新 更多