zuluniner/secsql

此包已被废弃且不再维护。未建议替代包。

简单的PDO SQL查询库

dev-master 2019-05-28 10:27 UTC

This package is auto-updated.

Last update: 2022-09-28 17:59:23 UTC


README

通过PHP PDO安全且简单访问SQL的方法

在PHP中引入包

也可以通过包含/要求 composer autoload.php 来实现
<?php
  require_once("../secsql.php");
  use ZuluNiner\SecSQL;

SECSQL\Query

按顺序从左到右的参数
必需
  • $hostname

  • $port

  • $username

  • $password

  • $database

    非必需:列出默认值
  • $driver = 'mysql'

  • $charset = "utf8"

$SecSQL = new SecSQL("localhost","3306","username","password","database");

ZuluNiner\SECSQL->Select()

按顺序从左到右的参数

必需
  • $table
非必需:列出默认值
  • $columns = null
$select = $query->Select("users")->Execute();
$select = $query->Select("users",['username'])->Execute(); //Retreives only the username
$select = $query->Select("users",['username','pass_hash'])->Execute(); //Retreives only the username and pass_hash

ZuluNiner\SECSQL->Insert()

按顺序从左到右的参数

必需
  • $table
  • $columnValues
$insert = $query->Insert("users",["username"=>"test","pass_hash"=>password_hash("something",PASSWORD_BCRYPT)])->Execute();

ZuluNiner\SECSQL->Update()

按顺序从左到右的参数

必需
  • $table
  • $columnValues
$update = $query->Update("users",["username"=>"test2","pass_hash"=>password_hash("newsomething",PASSWORD_BCRYPT)])->Execute();

ZuluNiner\SECSQL->Where()

按顺序从左到右的参数

必需
  • $table
  • $columnValues
$update = $query->Update("users",["username"=>"test2"])->Where(["username","=","test"])->Execute();
$update = $query->Update("users",["username"=>"test2"])->Where(["username","LIKE","%test%"])->Execute();
$update = $query->Update("users",["username"=>"test2"])->Where([["username","=","test","AND"],["id","=",1]])->Execute();
$update = $query->Update("users",["username"=>"test2"])->Where([["username","=","test","OR"],["id","=",1]])->Execute();
$update = $query->Update("users",["username"=>"test2"])->Where([["username","=","test","OR"],["id","=",1],["active"=>1]])->Execute(); //This will add an "OR" between the first and second where clauses and will add an "AND" between the second and third clauses automatically

ZuluNiner\SECSQL->OrderBy()

按顺序从左到右的参数

必需
  • $columnsOrder
$select = $query->Select("users")->OrderBy(['username','ASC'])->Execute();
$select = $query->Select("users")->OrderBy([['username','ASC'],['active'=>'DESC']])->Execute();

ZuluNiner\SECSQL->Limit

按顺序从左到右的参数

必需
  • $number
非必需:列出默认值
  • $startAfter = 0
$select = $query->Select("users")->OrderBy(['username','ASC'])->Limit(1)->Execute();
$select = $query->Select("users")->OrderBy(['username','ASC'])->Limit(5)->Execute();
$select = $query->Select("users")->OrderBy(['username','ASC'])->Limit(5,1)->Execute(); //This will retrieve the second through sixth entry skipping the first

更新计划

+ 在执行()的替代方案中添加 One() 和 All()

这将允许开发者指定他们想要一个条目还是所有条目,而不必每次都使用限制