《PHP使用PDO连接SQLITE3》要点:
本文介绍了PHP使用PDO连接SQLITE3,希望对您有用。如果有疑问,可以联系我们。
PHP可以通过直接的方法对sqlite数据库进行操作。不过提但是使用PDO进行连接。这里是一个封装示例,希望能帮到您。
注意:
sqlite在连接失败后会自动创建一个空数据库文件,所以在connect_sqlite方法中直接判断若此文件不存在则不进行库连接操作。
PHP用PDO调用SQLITE示例:
- $sqlitedb = new db_sqlite;
- $conn = $sqlitedb->connect_sqlite('./db/sqlite3.db','');
- $sqlitedb->exec_sqlite($conn,"insert into tt2 values(2,'http://www.vephp.com')");
- $sqlitedb->commit_sqlite($conn);
- $rs = $sqlitedb->query_sqlite($conn,'select * from tt2');
- foreach($rs as $k=>$v)
- {
- $v1 = $v['name'];
- #$v1 = mb_convert_encoding($v1,"gb2312","utf-8");
- #$v1 = mb_convert_encoding($v1,"utf-8","gb2312");
- echo $v1,'<br />';
- }
- $sqlitedb->close_sqlite($conn);
PDO连接SQLITE3的通用类:
- /**
- * 此类只兼容sqlite3
- * @author hanxiaoyue
- */
- class db_sqlite {
- //打开sqlite数据库
- function connect_sqlite($dbname,$module) {
- $conn = null;
- if(file_exists($dbname)) {
- $dbPath = 'sqlite:'.$dbname;
- try {
- $conn = new PDO($dbPath);
- $conn->beginTransaction();
- } catch(PDOException $e) {
- echo 'Exception is:'.$e->getMessage();
- }
- return $conn;
- } else {
- exit('连接时出现错误!');
- }
- }
- //打开datafarm链接
- function connect_datafarm_sqlite($dbname) {
- $conn = null;
- if(file_exists($dbname)) {
- $dbPath = 'sqlite:'.$dbname;
- try {
- $conn = new PDO($dbPath);
- $conn->beginTransaction();
- } catch(PDOException $e) {
- echo 'Exception is:'.$e->getMessage();
- }
- return $conn;
- } else {
- exit('启动事务时出现错误!');
- }
- }
- //查询操作
- function query_sqlite($conn,$sql) {
- $result = array();
- try {
- $sth = $conn->prepare($sql);
- $sth->execute();
- //获取结果
- $result = $sth->fetchAll();
- } catch(PDOException $e) {
- echo 'Exception is:'.$e->getMessage();
- }
- return $result;
- }
- //查询总记录数
- function query_count($conn,$sql) {
- $result = 0;
- try {
- $sth = $conn->prepare($sql);
- $sth->execute();
- //获取结果
- $vec = $sth->fetchAll();
- $result = $vec[0]['c'];
- } catch(PDOException $e) {
- echo 'Exception is:'.$e->getMessage();
- }
- return $result;
- }
- //add,update,delete执行操作
- function exec_sqlite($conn,$sql) {
- $count = 0;
- try {
- $count = $conn->exec($sql);
- } catch(PDOException $e) {
- $conn->rollBack();
- echo 'Exception is:'.$e->getMessage();
- }
- return $count;
- }
- /**
- * 提交事务。针对执行exec_sqlite后
- */
- function commit_sqlite($conn) {
- $conn->commit();
- }
- //关闭连接
- function close_sqlite($conn) {
- $conn=null;
- }
- }
转载请注明本页网址:
http://www.vephp.com/jiaocheng/87.html