25

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());
}
acctman
  • 4,229
  • 30
  • 98
  • 142
  • [http://www.php.net/manual/en/ref.pdo-sqlite.php](http://www.php.net/manual/en/ref.pdo-sqlite.php) – clement Jan 10 '12 at 13:24
  • On Windows, the only thing that helped me was to add "C:\Program Files\php" to the system PATH environment variables, although I cannot imagine why. – Uwe Keim Apr 07 '23 at 12:20

5 Answers5

38

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

The Onin
  • 5,068
  • 2
  • 38
  • 55
25

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 of course this extension in your ext directory.

Uwe Keim
  • 39,551
  • 56
  • 175
  • 291
devdRew
  • 4,393
  • 3
  • 24
  • 33
11

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.

JTC
  • 3,344
  • 3
  • 28
  • 46
3

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.

Keozon
  • 998
  • 10
  • 25
dylan-myers
  • 323
  • 3
  • 18
0

Debian 11 (bullseye) provides php7.4-sqlite3:

apt install php7.4-sqlite3
Abdull
  • 26,371
  • 26
  • 130
  • 172