PHP返回PDOException'找不到驱动程序'尝试连接时做SQLite3

时间:2015-11-12 22:55:05

标签: php pdo sqlite ubuntu-14.04

我尝试使用PDO连接SQLite数据库,但我收到此错误:

  

未捕获的异常' PDOException'有消息'无法找到驱动程序'

在我的代码中:

$db = new PDO('sqlite:remedios.sqlite');

此外,命令PDO::getAvailableDrivers()仅列出mysql。 我使用的是Ubuntu 14.04

但问题是我已经安装了pdo_sqlite(与apt-get sqlite3 php5-sqlite一起安装)。 我也查了一下:

  • 我的phpinfo()显示sqlite3(phpinfo在这里:PHPInfo
  • 我在/etc/php5/apache2/conf.d/20-pdo_sqlite.ini中的PHP配置文件中有extension=pdo_sqlite.so(phpinfo在&#34中列出了此文件;解析了其他.ini文件" )
  • 我在文件夹/usr/lib/php5/20121212
  • 中有pdo_sqlite.so
  • 已经尝试重新安装sqlite3,php5,php5-sqlite

修改

以下配置文件:

20-pdo_sqlite.ini

; configuration for php SQLite module
; priority=20
extension=pdo_sqlite.so

20 sqlite3.ini

; configuration for php SQLite module
; priority=20
extension=sqlite3.so

EDIT2

在apache error.log上找到此错误

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/pdo_sqlite.so' - /usr/lib/php5/20121212/pdo_sqlite.so: undefined symbol: sqlite3_column_table_name in Unknown on line 0
[Fri Nov 13 00:03:42.704671 2015] [mpm_prefork:notice] [pid 1938] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.14 OpenSSL/1.0.1f configured -- resuming normal operations
[Fri Nov 13 00:03:42.704702 2015] [core:notice] [pid 1938] AH00094: Command line: '/usr/sbin/apache2'

2 个答案:

答案 0 :(得分:2)

您缺少SQLite客户端库,我认为该软件包在Ubuntu上是libsqlite3-0:

apt-get install libsqlite3-0

之后重新启动Apache。

更新 - 我们在ldconfig -p | grep sqlite的帮助下在聊天中找到了它。它在/ usr / local / lib中发现了一个过时的libsqlite3安装,它与Apache正在使用的安装相冲突。删除冲突的安装,并重新安装sqlite3包解决了这个问题。

答案 1 :(得分:0)

输入:

sudo apt-get install php5-sqlite