Text in Courier is code to be typed literally
Text in Arial should be substituted for your own values 
<?php
try {
   $file = 'path/to/sqlfile.sl3';  // relative to the directory the php is in 
   $db = new PDO('sqlite:' . $file);  // new php db object, *not* a new db
 } 
catch(PDOException $pe) {
   echo $pe->getMessage();
   exit(0);
 }
try {
   $result = $db->query('SELECT field1,field2,field3,etc FROM table');
   echo '<table>' . "\r\n";
   echo "<tr><th>field1 name</th><th>field2 name</th><th>field3 name</th></tr>\n";
   foreach ( $result as $row ) {
      echo "<tr><td>" . $row['field1'] . "</td>" . 
           "<td>" . $row['field2'] . "</td>" .
           "<td>" . $row['field3'] . "</td>" .
           "</tr>\r\n";
   }
   echo '</table>' . "\r\n";
 } 
catch(PDOException $pe) {
   echo $pe->getMessage();
   exit(0);
 }
?>
Tuesday, 6 January 2015
How to get SQLite3 working in PHP 5.4, 5.5 and up - on Windows
1) Check to see if PHP believes you have SQLite3 installed and working
Create this PHP script (I created it as sqlSandbox.php in the top-level of my web-server's web root directory)
<?php
// Give yourself all the debugging info you can
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', TRUE);
// What version of PHP is running?
echo "phpversion " . phpversion();
echo "<br>";
// Everything and the Kitchen sink
phpinfo();
Things to check on this page:
A) Top section
This shows you which php.ini file is the one to alter.
B) In the PDO section
You should see
C) There should be a pdo_sqlite section.
D) There should be a sqlite3 section
2) Note that any function in the PHP manual beginning "sqlite_" refers to sqlite2 and below, and that only references beginning with SQLite3 work with SQLite3.
3) Make sure you have a php.ini file in your php directory
(I created mine by copying php-production.ini to php.ini)
4) Make sure PHP can see the PHP Windows extensions
In php.ini
Uncomment the last line of this section, (by removing the ; at the start of the line) and add the ext sub-directory
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir =
So the final line becomes:
extension_dir = ext
5) Enable the PDO Windows extension for SQLite
In php.ini
Uncomment this line (by removing the ; at the start of the line)
to get
extension=php_pdo_sqlite.dll
6) Enable the SQLite3 Windows extension
In php.ini
Uncomment this line (by removing the ; at the start of the line)
to get
extension=php_sqlite3.dll
7) Tell PHP where SQLite is.
Uncomment this line (by removing the ; at the start of the line) and put in the relevant directory
[sqlite3]
sqlite3.extension_dir = M:\sqlite3
Create this PHP script (I created it as sqlSandbox.php in the top-level of my web-server's web root directory)
<?php
// Give yourself all the debugging info you can
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', TRUE);
// What version of PHP is running?
echo "phpversion " . phpversion();
echo "<br>";
// Everything and the Kitchen sink
phpinfo();
?>
Things to check on this page:
A) Top section
| Loaded Configuration File | M:\php-5.5.10\php.ini | 
B) In the PDO section
You should see
| PDO support | enabled | 
|---|---|
| PDO drivers | sqlite | 
C) There should be a pdo_sqlite section.
| PDO Driver for SQLite 3.x | enabled | 
|---|---|
| SQLite Library | 3.7.7.1 | 
D) There should be a sqlite3 section
| SQLite3 support | enabled | 
|---|---|
| SQLite3 module version | 0.7-dev | 
| SQLite Library | 3.7.7.1 | 
| Directive | Local Value | Master Value | 
|---|---|---|
| sqlite3.extension_dir | M:\sqlite3 | M:\sqlite3 | 
2) Note that any function in the PHP manual beginning "sqlite_" refers to sqlite2 and below, and that only references beginning with SQLite3 work with SQLite3.
3) Make sure you have a php.ini file in your php directory
(I created mine by copying php-production.ini to php.ini)
4) Make sure PHP can see the PHP Windows extensions
In php.ini
Uncomment the last line of this section, (by removing the ; at the start of the line) and add the ext sub-directory
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir =
So the final line becomes:
extension_dir = ext
5) Enable the PDO Windows extension for SQLite
In php.ini
Uncomment this line (by removing the ; at the start of the line)
to get
extension=php_pdo_sqlite.dll
6) Enable the SQLite3 Windows extension
In php.ini
Uncomment this line (by removing the ; at the start of the line)
to get
extension=php_sqlite3.dll
7) Tell PHP where SQLite is.
Uncomment this line (by removing the ; at the start of the line) and put in the relevant directory
[sqlite3]
sqlite3.extension_dir = M:\sqlite3
Subscribe to:
Comments (Atom)
