🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 核心操作 数据库查询构造器 (query builder) 提供方便、流畅的接口,用来建立及执行数据库查找语法。在你的应用程序里面,它可以被使用在大部分的数据库操作,而且它在所有支持的数据库系统上都可以执行。 This7 框架的 CURD 的自由度超过你的想象,当开启 DEBUG 模式后,所有 SQL 语句问题均会在页面中显示,一目了然。 > 注意: This7 查询构造器使用 PDO 参数绑定,以保护应用程序免于 SQL 注入,因此传入的参数不需额外转义特殊字符。 ## 预准备操作 This7支持使用预准备查询,可以完全避免SQL注入。 #### 修改操作 ``` sql::execute("update news set total=:total where id=:id",[':total'=>5,':id'=>1]); ``` ## 查询操作 ##### 使用标识名 ``` sql::query("select * from site where siteid=:siteid AND name=:name", [':siteid'=>36,':name'=>'张三']); ``` ##### 使用占位符 ``` sql::query("select * from news where title like ?",['%This7%']) ``` ## 常用操作 #### 查找 下面是使用原生 SQL 语句进行查询,更灵活的方式请查看 查询构造器 部分 ``` sql::table('user')->where('id','>',1)->get(); ``` #### 新增 ``` sql::table('user')->insert(['username'=>'李四','qq'=>'123456789']); //数组数据会过滤掉非法字段 ``` #### 不存在时新增 ``` $user = sql::table('user')->firstOrCreate(['username' => '李四'],['username'=>'李四','age'=>22]); //如果不存在叫 “李四” 的用户就新增用户 ``` #### 替换 ``` sql::table('user')->replace(['id'=>1,'username'=>'李四','qq'=>'123456789']); //如果字段中有主键或唯一索引,并且数据存在,replace操作将执行替换当前记录的操作 ``` #### 添加并获取自增主键 如果数据表有自动递增的ID,可以使用 insertGetId 添加数据并返回该 ID ``` sql::table('user')->insertGetId(['username'=>'赵六','qq'=>'456123789']); ``` #### 更新 ``` sql::table('user')->where("id",1)->update(['username'=>'This7']); //数组数据会过滤掉非法字段 ``` #### 删除 ``` sql::table('user')->where('id',1)->delete(); //删除指定的主键值 sql::table('user')->delete(1); sql::table('user')->delete([2,3,5]); ``` #### 自增一个字段值 将total字段值加2 ``` sql::table("user")->where('id',1)->increment('total',2); ``` #### 自减一个字段值 ``` sql::table("user")->where('id',1)->decrement('total',2); 将total字段减少2 ``` #### 获取自增主键 ``` $db = sql::table( 'news' ); $db->insert( [ 'title' => 'THIS7官网' ] ); echo $db->getInsertId(); ``` #### 获取受影响条数 ``` $db = sql::table( 'news' ); $db->update( [ 'title' => 'This7标题' ] ); echo $db->getAffectedRow(); ```