本文实例讲述了php使用pdo连接sqlite3的配置方法。分享给大家供大家参考,具体如下:
刚刚开始使用php+sqlite 的时候,一直以为自己使用的是sqlite3 ,其实不是,php从php5 >=5.3.0 的时候才开始默认支持sqlite3
可参照官方文档http://www.php.net/manual/zh/sqlite3.open.php
默认的方法接口:
public void SQLite3::open ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key ]] )
利用PHP操作数据库时发现PHP默认只支持到Sqlite2,不支持最新版的Sqlite3。如果想支持Sqlite3就要使用PDO。要想使用PDO,需要在php.ini里面载入php_pdo.dll和php_pdo_sqlite.dll两个模块。如下:
1
2
|
extension=php_pdo.dll extension=php_pdo_sqlite.dll |
如果没有使用pdo ,即使你打开了上面的参数,其实还是使用sqlite2 的,不信你访问看一下生成的数据库在文件的开头是不是提示:
** This file contains an SQLite 2.1 database **
当php环境没有开启上面支持的配置时将报如下错误:
Fatal error: Call to undefined function sqlite_open()
sqlite3示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<html> <?php //$dsn = 'sqlite:sql.db'; try { //$dbh = new PDO($dsn, $user, $password); //建立连接 // $dbh = new PDO('sqlite:yourdatabase.db'); $dbh = new PDO( 'sqlite:itlife365.com' ); echo 'Create Db ok' ; //建表 $dbh -> exec ( "CREATE TABLE itlife365(id integer,name varchar(255))" ); echo 'Create Table itlife365 ok<BR>' ; $dbh -> exec ( "INSERT INTO itlife365 values(1,'itlife365.com')" ); echo 'Insert Data ok<BR>' ; $dbh ->beginTransaction(); $sth = $dbh ->prepare( 'SELECT * FROM itlife365' ); $sth ->execute(); //获取结果 $result = $sth ->fetchAll(); print_r( $result ); $dsn =null; } catch (PDOException $e ) { echo 'Connection failed: ' . $e ->getMessage(); $dsn = null; } ?> </html> <?php $dbh = null; //或使用unset($dbh); ?> |
验证:查看数据库:
在文件头显示:
SQLite format 3***
更多说明可参考官网:http://cn.php.net/manual/zh/ref.pdo-sqlite.php
希望本文所述对大家PHP程序设计有所帮助。