PHP 之sqlite3封装与示例

一、sqlite3封装

<?php

class SQLiteDB extends SQLite3 {
    function __construct(){
        try {
            //打开数据库文件
            $this->open('./ccfcf4572e60f80522c1cf0f8e4b95c3.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();
        return @self::$db->exec($sql);
        $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;
    }

    /**
     * 获取插入id
     * @param $table
     * @return mixed
     */
    public static function getLastInsertId($table)
    {
        return self::$db->querySingle('select last_insert_rowid() from '.$table.' LIMIT 1');
    }

    /**
     * 查询多条记录
     * @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;
    }
}

二、简单示例

//获取列表
DBUtils::queryList("select * from ay_content where scode=$old_scode");
//获取数量
DBUtils::count("select * from ay_content where acode='en' and title='{$v['title']}'");
//获取插入的id
DBUtils::querySingle('select last_insert_rowid() from ay_content LIMIT 1');
//获取单条数据
DBUtils::queryRow("select * from ay_content_ext where contentid={$id} LIMIT 1");
//执行增、删、改
DBUtils::execute(sql语句);

 

posted @ 2022-09-16 10:49  样子2018  阅读(321)  评论(0编辑  收藏  举报