多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
>一般情况下建议采用model来操作MYSQL数据库 <br/> ## pk - 设置主键字段 ~~~ use \api\Mysql; Mysql::pk('id'); ~~~ <br/> ## select - 设置查询字段 ~~~ use \api\Mysql; // 不传值则表示查询所有,即“*” Mysql::select(); Mysql::select('id, name'); Mysql::select('COUNT(`id`) AS count'); // 支持数组 Mysql::select(['id', 'name']); ~~~ <br/> ## from - 设置操作的数据表 ~~~ use \api\Mysql; // 不需要写表前缀,表前缀应在Mysql.php中配置 Mysql::from('table'); // 第二个参数可以设置数据表别名 Mysql::from('table', 't'); ~~~ <br/> ## where - 条件 ~~~ use \api\Mysql; // id等于1 Mysql::where([ 'id' => 1 ]); // IN查询 Mysql::where([ 'id IN' => [1,2,3,4,5] ]); // NOT IN查询 Mysql::where([ 'id NOT IN' => [1,2,3,4,5] ]); // id大于10 Mysql::where([ 'id >' => 10 ]); // id小于10 Mysql::where([ 'id <' => 10 ]); // isnull Mysql::where([ 'id' => null ]); // or Mysql::where([ 'id' => 1, 'OR state' => 1 ]); Mysql::where([ 'id' => 1, 'OR id >' => 10 ]); Mysql::where([ 'id' => 1, 'OR id IN' => [5,6,7] ]); // like Mysql::where([ 'name LIKE' => '%eapi%' ]); // 复杂查询可将值设置为FALSE,完全以KEY作为查询内容 Mysql::where([ 'id' => 1, 'OR (id > 5 AND id < 10)' => FALSE ]); ~~~ <br/> ## order - 排序 ~~~ use \api\Mysql; Mysql::order('id DESC'); Mysql::order('id DESC,hit ASC'); // 多个排序字段也可以传入数据格式 Mysql::order([ 'id' => 'DESC', 'addtime' => 'ASC' ]); ~~~ <br/> ## group - 分组 ~~~ use \api\Mysql; Mysql::group('sex'); ~~~ <br/> ## limit - 条数 ~~~ use \api\Mysql; Mysql::limit(10); // 10到20条 Mysql::limit(10, 10); ~~~ <br/> ## join - 关联 ~~~ use \api\Mysql; Mysql::join('table AS t', 't.id = x.id', 'LEFT'); ~~~ <br/> ## one - 查询单条 ~~~ $data = mysql('table', 't')->select() ->join('table_1 t1', 't.id = t1.id', 'LEFT') ->where([ 't.id' => 1 ]) ->one(); ~~~ <br/> ## all - 查询多条 ~~~ $data = mysql('table', 't')->select() ->join('table_1 t1', 't.id = t1.id', 'LEFT') ->where([ 't.id' => 1 ]) ->order('t.id DESC') ->limit(10) ->all(); ~~~ <br/> ## add - 写入数据 ~~~ // 返回插入数据的insertId $id = mysql('table')->add([ 'id' => 1, 'name' => 'test' ]); // 批量写入,返回写入的条数 $data = [ [ 'id' => 1, 'name' => 'test' ], [ 'id' => 1, 'name' => 'test' ], [ 'id' => 1, 'name' => 'test' ] ]; $num = mysql('table')->add($data, TRUE); ~~~ <br/> ## edit - 更新数据 ~~~ // 返回影响的条数 $num = mysql('table')->where([ 'id' => 1 ])->edit([ 'name' => 'new name' ]); ~~~ <br/> ## delete - 删除数据 ~~~ // 返回影响的条数 $num = mysql('table')->where([ 'id' => 1 ])->delete(); ~~~ <br/> ## query - 执行SQL语句 ~~~ use \api\Mysql; // SQL查多条 $data = Mysql::query('SELECT * FROM table')->all(); // SQL查单条 $data = Mysql::query('SELECT * FROM table limit 1')->one(); // 执行SQL语句 Mysql::query('INSERT INTO table (id) VALUES (1)'); ~~~ <br/> ## lastSql - 获取最后执行的SQL语句 ~~~ use \api\Mysql; $sql = Mysql::lastSql(); ~~~ <br/> ## 事务 ~~~ use \api\Mysql; // 开始事务 Mysql::startTrans(); // 执行语句,一定要放到try、catch中 try { TbOne::insert([ 'name' => 'eapi', 'age' => 35 ]); TbOne::insert([ 'name' => 'eapi', 'age' => 36 ]); // 提交事务 Mysql::commit(); } catch(\Exception $exception){ // 如果SQL有异常则回滚事务 Mysql::rollback(); } ~~~