pdo sqlite找不到驱动程序... php文件没有处理

时间:2012-01-10 13:06:21

标签: php sqlite pdo

您在尝试通过php文件连接到sqlite时收到找不到驱动程序错误。我已经设置了777的权限... PHP版本5.2.16,我有模块安装。任何没有找到驱动程序的原因,php.ini也会显示扩展名为pdo.so和pdo_mysql.so的安装。

PDO

启用PDO支持 PDO驱动程序mysql

PDO_MYSQL

用于MySQL的PDO驱动程序,客户端库版本5.0.92

try {
    // Connect to the SQLite Database.
    $db = new PDO('sqlite:.subscribers.db');
} catch(Exception $e) {
    die('connection_unsuccessful: ' . $e->getMessage());
}

4 个答案:

答案 0 :(得分:17)

我必须实际安装扩展程序,这就是我在 Ubuntu 16 上运行 PHP 7.1 的方式:

sudo apt install php7.1-sqlite3

答案 1 :(得分:15)

你需要

[PDO_SQLITE]
extension=pdo_sqlite.so

要启用,sqlite:.subscribers.db

或者,对于Windows:

[PHP_PDO_SQLITE]
extension=php_pdo_sqlite.dll

并在您的ext目录

中使用此扩展程序

答案 2 :(得分:4)

在archlinux上,我必须做两件事:

首先安装php-sqlite

pacman -S php-sqlite

之后在我的php.ini文件中为我/etc/php/php.ini我必须取消注释这一行:

;extension=pdo_sqlite.so

删除分号。

别忘了重启服务器。

答案 3 :(得分:0)

我在Windows上使用可移植版本的PHP,使用内置的Web服务器。我发现以下步骤有帮助:

  1. 将php.ini-development重命名为php.ini
  2. 在[PHP](第700行附近)取消注释import numpy as np from numpy.linalg import lstsq from scipy.linalg import orth # random matrix M = np.random.rand(10, 5) # get 5 orthogonal vectors in 10 dimensions in a matrix form O = orth(M) def find_orth(O): rand_vec = np.random.rand(O.shape[0], 1) A = np.hstack((O, rand_vec)) b = np.zeros(O.shape[1] + 1) b[-1] = 1 return lstsq(A.T, b)[0] res = find_orth(O) if all(np.abs(np.dot(res, col)) < 10e-9 for col in O.T): print("Success") else: print("Failure")
  3. 确保php.ini中包含以下行:

    [sqlite3的]
    sqlite3.extension_dir =“ext”
    extension = sqlite3
    extension = pdo_sqlite

  4. 运行带有以下标志的php网络服务器:extension_dir = "ext"

  5. 所以目前我的php命令是- c C:\Path\to\PortablePHP\php.ini