【问题标题】:PDOException - Connection Failed - Could not find driver - PHP5/SQLite/UbuntuPDOException - 连接失败 - 找不到驱动程序 - PHP5/SQLite/Ubuntu
【发布时间】:2018-11-08 07:43:19
【问题描述】:

我遇到了一个莫名其妙的问题。我之前已经正确设置了 PHP5/SQLite。但是,这一次它不起作用。

功能的基本期望是我使用以下方法建立通用数据库连接:

$dblocation = "path/to/database.db";
$dbConn = new PDO("sqlite:" . $dblocation); 

从那里我得到了

连接失败:找不到驱动程序。

我已执行以下操作来解决此问题。

  1. 检查文档:php -a -c /etc/php5/cli/php.iniphpinfo()

    sqlite3
    
    SQLite3 support => enabled
    SQLite3 module version => 0.7-dev
    SQLite Library => 3.8.2
    
  2. 检查可用的驱动程序:

    php > print_r(PDO::getAvailableDrivers());
    Array
    (
       [0] => mysql
       [1] => sqlite
    )
    php >
    
  3. 使用 Apache2,启用 pdopdo_sqlite

    这样,我不需要取消注释 PHP.ini 文件中的扩展行。如果我取消注释,当您尝试加载两次时,我会收到预期的无法取消注册错误。

  4. 删除所有 PHP PDO 安装并重新安装。

  5. 删除 PHP 本身并重新安装。

这些都没有帮助。

就像我说的,我之前已经能够让它正常运行,所以我不确定这里出了什么问题。希望有人有比我能找到的更可靠的答案。从我看到的一切似乎都配置正确。

任何人都可以提供任何帮助,我们将不胜感激。

【问题讨论】:

  • 它是命令行应用程序还是基于 Web 的应用程序?
  • 你在ubuntu上安装php5-sqlite包了吗?这不是 sqlite CLI。
  • @ÁlvaroGonzález - 这是一个 cron 作业每分钟调用的类文件。但是,如果我从命令行 sudo php 它,我会得到相同的行为。
  • @Parfait - 是的,我使用 apt-get 安装了 php5-sqlite 包。
  • @Parfait 谢谢。我将我的 apache2 目录复制为 nopache 是的...热闹...我还使用 sudo php5dismod pdo_sqlite 禁用了 php5 pdo_sqlite 模块。它没有从 conf.d 中的链接中删除自己,所以我手动删除了它。使用 php -a -c /etc/php5/nopache/php.ini,我得到 unregister_driver 错误。如果我删除了 ini 文件,我不会收到该错误。所以,看起来你是对的,问题出在 Apache2 文件中。在我的 nopache 目录中,我试图加载它两次或乱序。在 apache 中,它只是没有加载。对吗?

标签: php sqlite pdo


【解决方案1】:

请记住,PHP CLI 使用的 ini 与 apache 使用的不同。尝试通过网络服务器运行phpinfo();。这应该会告诉您更多信息。

【讨论】:

  • 谢谢!我也将对 CLI 所做的任何更改镜像到 Apache2。
猜你喜欢
  • 1970-01-01
  • 2015-06-22
  • 2015-02-23
  • 2015-06-16
  • 2016-09-03
  • 2022-01-23
相关资源
最近更新 更多