uppercod / myq
SQL查询管理器,允许构建不可变的查询
This package is not auto-updated.
Last update: 2024-10-02 04:37:05 UTC
README
#MyQ
是一个小的SQL查询管理器,允许构建不可变的查询
require __DIR__."/../vendor/autoload.php"; $pdo = new PDO("mysql:dbname=attack;host=localhost", "root", ""); $db = new MyQ\Connect([ "db" => $pdo, "prefix"=> "sample_" // opcional ]); $data = $db->el_nombre_de_mi_tabla // prepara el cursor hacia esta tabla ->select() // prepara la consulta select ->fetch(); // la ejecuta para obtener un resultado
方法
默认情况下,MyQ提供了各种方法来加速SQL查询生成过程
MyQ::select(array $select = [])
准备一个选择查询
选择示例 1
可以从 "mi_tabla" 获取字段 "mi campo"
$mi_tabla->select([ "mi campo" ])
选择示例 2
可以从 "mi_tabla" 获取字段 "mi campo" 并将其别名设置为 "campo"
$mi_tabla->select([ [ "mi campo", "campo" ] // mi campo as campo ])
选择示例 3
可以从 "mi_tabla" 获取字段 "mi campo" 并应用函数 "MIN, MAX, COUNT, AVG, SUB"
$mi_tabla->select([ [ "mi campo", "min" ] // MIN(mi campo) ])
选择示例 4
可以从 "mi_tabla" 获取字段 "mi campo" 并应用函数 "MIN, MAX, COUNT, AVG, SUB" 并设置别名
$mi_tabla->select([ [ "mi campo", "min", "minimo" ] // MIN(mi campo) as minimo ])
MyQ::insert(array $columns)
准备一个插入查询
$mi_tabla->insert([ "mi campo"=>10, "mi otro campo"=>20, ])
MyQ::update(array $columns)
准备一个更新查询
$mi_tabla->update([ "mi campo"=>10, "mi otro campo"=>20, ])
MyQ::delete(array $columns)
准备一个删除查询
$mi_tabla->update()
MyQ::where(array $where)
将WHERE子句附加到查询中
WHERE示例
此查询从 "mi_tabla" 删除满足表达式 "id = 10" 的行
$mi_tabla ->delete() ->where([ "id","=","10" ])
同样,您可以使用WHERE的所有搜索表达式,例如 **"=, <, >, <=, >=, <>"**
WHERE IS NULL示例
此查询从 "mi_tabla" 删除满足表达式 "IS NULL" 的行
$mi_tabla ->delete() ->where([ "id","=",NULL ])
WHERE NOT !示例
此查询从 "mi_tabla" 删除满足表达式 "NOT id = 10" 的行
$mi_tabla ->delete() ->where([ "id","!=",10 ])
WHERE BETWEEN {}示例
同样,您可以使用通配符 BETWEEN,无论是使用单词 "between" 还是其通配符 "[]"。
此查询从 "mi_tabla" 删除满足表达式 "ID BETWEEN 1 AND 20" 的行
$mi_tabla ->delete() ->where([ "id","[]",[1,20] ])
WHERE IN {}示例
同样,您可以使用通配符 IN,无论是使用单词 "in" 还是其通配符 "{}"。
此查询从 "mi_tabla" 删除满足表达式 "ID IN (1,20)" 的行
$mi_tabla ->delete() ->where([ "id","{}",[1,20] ])
WHERE OR ||示例
同样,您可以使用通配符 OR,无论是使用单词 "or" 还是其通配符 "||"。
此查询从 "mi_tabla" 删除满足表达式 "id = 2 OR id = 3" 的行
$mi_tabla ->delete() ->where([ ["id","=",2],"||",["id","=",3] ])
WHERE LIKE %示例
同样,您可以使用通配符 LIKE,无论是使用单词 "like" 还是其通配符 "%"。
此查询从 "mi_tabla" 删除满足表达式 "name LIKE %m%" 的行
$mi_tabla ->delete() ->where([ "name","%","%m%" ])
WHERE完整示例
同样,您可以使用所有操作符来创建高级查询,甚至可以递归地使用这些操作符。
$mi_tabla ->delete() ->where([ "id","=","20", "age", "[]",[18,30], "lang", "{}", ["es","en"] ])
MyQ::join(array $joins, $type = "inner")
将JOIN子句附加到查询中
$mi_tabla ->select([ "mi_tabla.*", "mi_otra_tabla.*" ]) ->join([ "mi_otra_tabla.ID"=>"mi_tabla.ID" ])
MyQ::raw(string $raw)
允许将字符串连接到查询中,而不进行安全验证
MyQ::setParams(array $params)
允许修改或创建查询参数
$mi_tabla ->select() ->setParams([ ":ID"=>10 ]) ->raw("WHERE ID=:ID")
MyQ::fetch(fetch_style $fetch = \PDO::FETCH_ASSOC, fetch_argument ...$args)
允许同时执行 "execute" 和随后使用 "fetchAll",将常量 "fetch" 分配给。
$mi_tabla ->select() ->fetch()
MyQ::execute(array $params = [])
允许执行 "execute" 方法以获取查询结果,"$params" 可以替换掉查询中之前存在的默认参数。
此方法返回一个数组,结构如下 [$prepare,$status]
- $prepare : 包含 PDO::prepare 的返回值
- $status : 包含 PDO::execute 的返回值