实现一个简单的php操作SQLite的类

首先需要安装给php安装sqlite扩展,在php.ini配置文件中添加库的引用依赖,操作类的实现代码如下

<?php
/**
 * @author pengjing
 * @copyright 2012
 */
class EasySQLite
{
    /**
     * database object
     */
    private $conn;

    /**
     * error information
     */
    private $error;
    
    /**
     * EasySQLite::__construct()
     * 
     * @return
     */
    function __construct($dbname)
    {
        $this->conn = $this->connect($dbname);
    }

    /**
     * EasySQLite::__destruct()
     * 
     * @return
     */
    function __destruct()
    {
        if($this->conn){
            sqlite_close($this->conn);
        }
    }
    
    /**
     * EasySQLite::query()
     * 
     * @param mixed $sql
     * @return
     */
    public function query( $sql )
    {
        $data = Array();
        $i = 0;
        
        $result = sqlite_query($this->conn, $sql, SQLITE_ASSOC, $err_msg);
        
        if($result == false){
                $this->error = "SQL error: " . $err_msg;
                return NULL;
        }
        else{   
                while($arr = sqlite_fetch_array($result, SQLITE_ASSOC))
                {       
                        $data[$i++] = $arr;
                }
        }
        if(count($data) > 0){
            return $data;
        }
        else{
            return sqlite_changes($this->conn);
        }
    }
    
    /**
     * EasySQLite::connect()
     * 
     * @param bool $is_master
     * @return
     */
    private function connect($dbname)
    {
        $conn = sqlite_open($dbname, 0666, $sqliteerror);
        if( !$conn )
        {
            $this->error = $sqliteerror;
            return NULL;
        }
        return $conn;
    }
    
    /**
     * EasySQLite::error()
     * 
     * @return
     */
    public function error(){
        return $this->error;
    }
}

?>

使用方法如下:

<?php

        require_once("sqlite.php");

        $db = new EasySQLite("1.db");

        print_r($db->query("delete from user where username = 'ciaos'"));
        // rows affected
        print_r($db->query("insert into user values('ciaos','pwd')"));
        // rows affected
        print_r($db->query("update user set username='ciaos2' where username='ciaos'"));
        // rows affected
        print_r($db->query('select * from user'));
        // results array

?>
其中插入删除与更新操作均是返回影响的行数,select操作返回结果数组


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值