国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

??Sqlite 數(shù)據(jù)庫插件

v2.0.3 版本
2024-02-17 版本更新時間
30 安裝
0 star

Youloge.Sqlite重構版本 Webman 基礎插件

項目介紹

Sqlite3 插件:它是對標fopen 函數(shù)的,性能還是不錯了,像一般性的個人博客,企業(yè)官網(wǎng),完全都是可以hold住的。
其中Sqlite 的內(nèi)存型反應時間是ns級別的,其他數(shù)據(jù)庫都會有網(wǎng)絡開銷可以做到ms級別。代碼很少就100多行

這二天幫代碼升級了下,直接繼承SQLite3類進行擴展官方類php.net/sqlite3,我在官方基礎上擴展了幾個功能,從而實現(xiàn)自動表映射。同時將表配置文件放入到數(shù)據(jù)庫同目錄下,遷移時候直接復制即可。

  • Sqlite的優(yōu)缺點客觀看待,他真的非常適合打日志~

項目地址

Github Youloge.sqlite Star我 我們一起做大做強

  • 2.1.0 修復 json_trim存入json字符串報錯 值為用json_encode($html,JSON_HEX_APOS)轉義
  • 2.0.4 修復 row_array的排序查詢BUG

安裝

composer require youloge/sqlite

插件已經(jīng) 引入了以下助手函數(shù) 不需要在引入了可以直接使用sqlite()


use Youloge\Sqlite\Sqlite;     
if(!function_exists('sqlite')){                  
function sqlite($dir,$file){                     
return new Sqlite($dir,$file);               
}
}
// 任意地方 使用
$db = sqlite('文件目錄/目錄','文件名(不包含后綴)'); // 返回是一個`SQLite3 類`
$db::version(); // 返回版本/配置
var_export(get_class_methods($db)); // 打印全部方法

### 配置文件

- Sqlite 沒什么遠程管理工具 配置文件是關鍵的關鍵
- 位置:config/plugin/youloge/app.php
- 將`絕對路徑`配置到掛載盤之類的可以很好的和`其他日志服務`相結合
```php
<?php
return [
  'enable' => true,
  // 絕對路徑 需要 / 開頭 結尾 不需要
  'absolute'=>'C:/Users/Micateam/Desktop/youloge/composer/public',
  // 相對路徑 數(shù)據(jù)庫配置`JSON`格式 + MD5后續(xù)加入 方式配置變動
  'dump'=>'youloge.sqlite.json',
  // 文件后綴 你改成mp4都沒問題 Sqlite3 能識別
  'format'=>'db'
];

配置數(shù)據(jù)表

  • 進入絕對路徑C:/Users/Micateam/Desktop/youloge/composer/public目錄下新增文件youloge.sqlite.json
  • Sqlite 是以為文件作為數(shù)據(jù)庫,一個文件就是一個完整的數(shù)據(jù)庫,你必須做到預先把數(shù)據(jù)表設計好:
  • 支持復雜目錄www/hello/word.user 點文件夾也支持* .user 別和app.php > format 重復防止同名文件夾-文件名
  • 后續(xù)考慮sqlite 配置整合到absolute 絕對路徑里去加載,可以更好的分布式共享:例如丟到掛載盤共享
/**
 * 判斷標準 鍵值為數(shù)組 鍵名代表目錄名
 * 判斷標準 鍵值為字符 鍵名代表數(shù)據(jù)庫表名
 */
{
  "init":"id INT PRIMARY KEY AUTOINCREMENT,name varhcar(32),avatar varhcar(128),mail varhcar(128)",
  "test":"id INT PRIMARY KEY AUTOINCREMENT,name varhcar(32),avatar varhcar(128),mail varhcar(128)",
  "www.site":{
    "hello":"id INT PRIMARY KEY AUTOINCREMENT,avatar varhcar(128),mail varhcar(128),created text(12)",
    "word":"id INT PRIMARY KEY AUTOINCREMENT,name varhcar(32),avatar varhcar(128),mail varhcar(128)",
    "ok":{
      "no":"id INT PRIMARY KEY AUTOINCREMENT,state varhcar(128)",
    }
  },
  "open.site":{
    "info":"id INT PRIMARY KEY AUTOINCREMENT,state varhcar(128),created text(12)"
  }
}

youloge.sqlite.json 文件數(shù)據(jù)表配置,要仔細:數(shù)據(jù)庫表一旦建立了,修改更改表會十分的麻煩+蛋疼

  • $db = sqlite('/','db001'); 會在絕對路徑目錄下新建一個db001.db文件,自動創(chuàng)建二張表inittest
  • $db = sqlite('www.site/ok','db002'); 會在絕對路徑/www.site/ok目錄下新建一個db002.db文件,自動創(chuàng)建一張表no

開始使用

連接數(shù)據(jù)庫

  • 相對路徑 目錄open.site 文件youloge 表名info 為例
    $db = sqlite('open.site','youloge');
    sqlite::version(); // 靜態(tài)調用

    插入數(shù)據(jù) $table, $data

    插入一條數(shù)據(jù)

    $insert = sqlite->insert('info',['state'=>'正常']);
    echo $insert; // 返回插入的行數(shù) 行數(shù) ≠ 自增ID

    插入多條數(shù)據(jù)

    $insert = sqlite->insert('info',[['state'=>'正常'],['state'=>'正常'],['state'=>'正常']]);
    echo $insert; // 返回插入的行數(shù) 行數(shù) ≠ 自增ID

    更新數(shù)據(jù) $table, $data, $where

    一般更新

    $update = sqlite->update('info',['state'=>'禁言'],['id'=>1]);
    echo $update; // 返回1,0

    特殊更新

    $update = sqlite->update('info',['state'=>'禁言'],['id > 5','state'=>'正常']);
    echo $update; // 返回1,0

    刪除數(shù)據(jù) $table,$where

$delete = sqlite->delete('info',['state'=>'禁言']); // 鍵值對
$delete = sqlite->delete('info',['state IS NULL']); // 純數(shù)組
echo $delete; // 返回1,0

單條查詢 $table, $columns, $where 可選$order=false

  • row_array
    $row_array = sqlite->row_array('info','*',['id'=>100]);
    $row_array = sqlite->row_array('info',['*','id as uuid'],['id < 100','state'=>'正常'],'created desc');
    echo $row_array; // []

    多條查詢 $table, $columns, $where,$limit=10,$offset=0,$order=false

  • result_array
    $result_array = sqlite->result_array('info','*',['id'=>100],10,0);
    echo $result_array; // []

    統(tǒng)計查詢 $table, $columns, $where,$limit=10,$offset=0,$order=false

  • 好用但是數(shù)據(jù)多了 這玩意肯定卡~
    $count_array = sqlite->count_array('info','*',['id'=>100],10,0);
    echo $count_array; // ['list'=>[],'count'=>0,'limit'=>10,'offset'=>0];

    1.0.2 舊版是鏈式調用的:因為webman是常駐內(nèi)存,類只加載一次,我寫不好連接池所以2.0.0之后廢棄鏈式調用

擴展函數(shù) -> 箭頭調用官方是:: 靜態(tài)調用

  • insert - 插入數(shù)據(jù)
  • update - 更新數(shù)據(jù)
  • delete - 刪除數(shù)據(jù)
  • row_array - 單條查詢
  • result_array - 多條查詢
  • count_array - 統(tǒng)計查詢

原生連接句柄

$pdo = sqlite('hello/word','profile');
$pdo::exec();
$pdo::query();
$pdo::close();
$pdo::busyTimeout();

關于交流打賞:VX:micateam

贊助商