PHP中sqlite3的使用

时间:2021-09-27 23:43:55

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;
}
}

?>
调用方式:

引入DBUtils.php文件,然后通过 DBUtils::方法名 这种形式,即可操作SQLite数据库了。