SQL查询管理器,允许构建不可变的查询

0.0.1 2018-04-09 02:49 UTC

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 的返回值