21
votes

Hi i'm received the could not find driver error when trying to connect to sqlite via a php file. I've set permission to 777... PHP Version 5.2.16, i have the module install. any reason why its not finding the driver, also php.ini is showing the extension pdo.so and pdo_mysql.so installed.

PDO

PDO support enabled PDO drivers mysql

pdo_mysql

PDO Driver for MySQL, client library version 5.0.92

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

4 Answers

22
votes

You need

[PDO_SQLITE]
extension=pdo_sqlite.so

to be enabled, for sqlite:.subscribers.db

or, for windows:

[PHP_PDO_SQLITE]
extension=php_pdo_sqlite.dll

And ofcourse this extension in your ext directory

30
votes

I had to actually install the extension, and this is how i did on Ubuntu 16 running PHP 7.1:

sudo apt install php7.1-sqlite3

7
votes

On archlinux i had to do two things:

first install php-sqlite

pacman -S php-sqlite

after that in my php.ini file for me in /etc/php/php.ini i had to uncomment this line:

;extension=pdo_sqlite.so

by removing semicolon.

Dont forget to restart server.

3
votes

I am using a portable version of PHP on windows, using the inbuilt web server. I found the following steps helped:

  1. Renaming php.ini-development to php.ini
  2. Uncommenting extension_dir = "ext" under [PHP] (around line 700)
  3. making sure the following lines are in the php.ini:
[sqlite3]    
sqlite3.extension_dir = "ext"    
extension = sqlite3    
extension = pdo_sqlite
  1. Running the php webserver with the following flag added on: - c C:\Path\to\PortablePHP\php.ini

So currently my php command is php -S localhost:8081 -c B:\Downloads\php-7.2.6\php.ini.