PHP中sqlite3的使用

SQLite是一种轻量级的关系型数据库,可以内嵌在我们的应用程序中一起发布出去,这样我们在部署应用的时候,就不需要额外数据库的支持了。

在PHP中如果要使用sqlite,只需开启php_sqlite3.dll扩展即可,非常方便。下面是我曾经的一个项目中,自己编写的一个操作SQLite数据库的工具类。



    <?php  
      
    class SQLiteDB extends SQLite3 {  
        function __construct(){  
            try {  
                $this->open(dirname(__FILE__).'/../data/sqlite_ecloud.db');  
            }catch (Exception $e){  
                die($e->getMessage());  
            }  
        }  
    }  
      
    class DBUtils {  
          
        private static $db;  
          
        private static function instance(){  
            if (!self::$db) {  
                self::$db = new SQLiteDB();  
            }         
        }  
      
        /**
         * 创建表
         * @param string $sql
         */  
        public static function create($sql){  
            self::instance();  
            $result = @self::$db->query($sql);  
            if ($result) {  
                return true;  
            }  
            return false;  
        }  
      
        /**
         * 执行增删改操作
         * @param string $sql
         */  
        public static function execute($sql){  
            self::instance();  
            $result = @self::$db->exec($sql);  
            if ($result) {  
                return true;  
            }  
            return false;  
        }  
      
        /**
         * 获取记录条数
         * @param string $sql
         * @return int
         */  
        public static function count($sql){  
            self::instance();  
            $result = @self::$db->querySingle($sql);  
            return $result ? $result : 0;  
        }  
      
        /**
         * 查询单个字段
         * @param string $sql
         * @return void|string
         */  
        public static function querySingle($sql){  
            self::instance();  
            $result = @self::$db->querySingle($sql);  
            return $result ? $result : '';  
        }  
      
        /**
         * 查询单条记录
         * @param string $sql
         * @return array
         */  
        public static function queryRow($sql){  
            self::instance();  
            $result = @self::$db->querySingle($sql,true);  
            return $result;  
        }  
      
        /**
         * 查询多条记录
         * @param string $sql
         * @return array
         */  
        public static function queryList($sql){  
            self::instance();  
            $result = array();  
            $ret = @self::$db->query($sql);  
            if (!$ret) {  
                return $result;  
            }  
            while($row = $ret->fetchArray(SQLITE3_ASSOC) ){  
                array_push($result, $row);  
            }  
            return $result;       
        }  
    }  
      
    ?> 

有话要说