徐州提供网站建设要多少钱,asp.net网站管理工具,网站推广服务公司,设计公司品牌企业## CURD* 开启 DEBUG 模式后#xff0c;所有SQL语句均会在调试窗口显示#xff0c;一目了然.[TOC]### find 单条查询通过 find 操作进行简单的单条查询操作。~~~//查找主键值为 18 的记录$db-find(18);~~~### all 查询(别名 select)通过 all 查找所有记录数 。~~~//查找表…## CURD* 开启 DEBUG 模式后所有SQL语句均会在调试窗口显示一目了然.[TOC]### find 单条查询通过 find 操作进行简单的单条查询操作。~~~//查找主键值为 18 的记录$db-find(18);~~~### all 查询(别名 select)通过 all 查找所有记录数 。~~~//查找表中所有记录$list M(news)-all();~~~### table 临时改变表通过 table() 方法可快速切换操作表~~~//改变操作表为 userM(news)-table(user)-all();~~~### join 表关联使用 join() 可以快速实现表间关联~~~//关联 user 表与 role 表$data M(user)-alias(u)-field(u.*)-join(__role__ r ON u.ridr.rid)-all();//生成的查询语句: select u.* from tb_user inner join tb_role r ON u.rid r.rid;~~~### max 查找最大的值查找年龄最大的用户M(user)-max(age);### min 查找最小的值~~~//查找最便宜的商品M(goods)-min(price);~~~### avg 求平均值~~~//查找商品平均价格M(user)-avg(price);~~~### sum 求和~~~//获得点击数之和M(news)-sum(click)~~~### count 统计操作~~~//统计会员总数M(user)-count()~~~### field 字段集~~~//返回字段为 uid 与 username$db-field(uid,username)-select();//以数组形式传参$db-field(array(uid,username))-select();//更灵活的传参$db-field(array(uid,concat(username,-,uid)userid,LEFT(username,7)name))- select();//上面生成SQL SELECT uid,concat(username,-,uid) AS userid,LEFT(username,7) AS name FROM tb_user~~~### 字段排除~~~//获得除 content,title 以外的所有字段M(news)-field(array(title,content),true)-all();~~~### limit 取部分数据limit 方法就是为了生成 SQL 的 limit 部分~~~//查找第 2 条记录开始的 5 条记录$db-limit(2,5)-all();~~~### order 排序按 id 从大到小排序$db-order(id desc)-all();### getField 获得指定字段值按字段名获得结果的方法~~~//获取唯一字段值值//无论结果有多少个只返回一个值$db-where(id32)-getField(title);~~~~~~//满足条件记录的所有 title 字段$db-where(id2)-getField(title,true);~~~~~~//两个字段列表//两个字段时返回一维数组第一个字段做为键名使用第 2 个字段做为键值$db-getField(id,title);~~~~~~//多个字段时//多个字段返回二维数组第一个字段值做为键名使用其余字段做为键值$db-getField(id,title,click);~~~### group 分组操作TookPHP框架提供了完善的分组操作方法自由指定分组参数使发送 SQL 更容易~~~//按 id 与 name 分组查询$list $db-group(id,name)-all();//生成SQL SELECT id,name,sendtime FROM tb_demo GROUP BY id,name~~~### having 分组条件在 SQL 中增加 HAVING 子句原因是WHERE 关键字无法与合计函数一起使用 , 所以使用 HAVING 对分组进行条件筛选 , 所以在使用 HAVING 时应该使用 group 分组。~~~//获得记录条数大于 2 的 cid 值M(news)-having(count(*) 2)-group(cid)-select();~~~### add 添加数据(别名 insert)特点 :自动过滤非法字段自动对插入数据进行安全处理没有传入参数时使用 $_POST 值返回值为新增主键值或 true~~~//实例$dataarray(unameadmin,urlhttp://www.baidu.com);$lastId $db-add($data);~~~### ORM 属性映射~~~$db-username 李四;$db-web baidu.com;$db-add();~~~### replace 添加数据~~~//数据中存在主键则更新否则添加数据。$data array(id1,nameadmin);M(news)-replace($data);~~~### save 更新(别名 update)**特点**a. 自动过滤掉非法字段b. 自动进行数据安全处理c. 默认以 $_POST 数据更新d. 必须有更新条件 , 防止误更新e. 如果参数中存在主键值将以这个值为条件进行更新数据~~~//uid 为表主键使用数据中的主键为条件进行更新$dataarray(uid9,username 郭富城 );$db-save($data);~~~### setField 更新字段如果只是更新个别字段的值可以使用setField方法。~~~//更改用户的name值M(user)-where(id5)-setField(name,TookPHP);//生成SQL update tb_user set nameTookPHP where id5~~~setField方法支持同时更新多个字段只需要传入数组即可例如~~~//更改用户的name和email的值$data array(nameTookPHP,emailtest163.com);M(user)-where(id5)-setField($data);~~~### inc 增加值注* 带三个参数inc($field, $where, $step)* 带两个参数inc($field, $step)* 只带一个参数inc($field)* $step 缺省值 1~~~//将 id 为 4 记录的 total 加 1 ()M(news)-inc(total,id4,1);//生成SQL update tb_news set totaltotal1 where id4//将 id 为 4 记录的 total 加 1M(news)-where(id4)-inc(total);//生成SQL update tb_news set totaltotal1 where id4//将 id 为 4 记录的 total 加 100M(news)-where(id4)-inc(total,100);//生成SQL update tb_news set totaltotal100 where id4~~~### dec 减少值用法同上 inc方法唯一区别在于 inc用于增加值dec用于减少值~~~//将 id 为 4 记录的 total 减 1M(news)-dec(total,id4,1);//生成SQL update tb_news set totaltotal-1 where id4//将 id 为 4 记录的 total 减 100M(news)-where(id4)-dec(total,100);//生成SQL update tb_news set totaltotal-100 where id4~~~### del 删除(别名 delete)为了屏蔽误删除 del 方法必须指定条件~~~//删除主键值为 58 的数据M(news)-del(58);//生成SQL DELETE FROM tb_news WHERE id in(58)~~~### fieldExists 检测表字段是否存在~~~//检测 news 表是否存在 title 字段$db-fieldExists(title,news);~~~### tableExists 检测表是否存在M()-tableExists(category);### getVersion 获得数据库版本信息$db-getVersion();### getLastSql 获得最后一条 SQL$db-getLastSql();### getAllSql 获得所有 SQL 语句$db-getAllSql();### getAffectedRows 获得受影响的行数$db-getAffectedRows();### getInsertId 获得最后插入的主键值~~~$dataarray(title标题);$db-insert($data);$db-getInsertId();~~~### getAllTableInfo 获所有表信息获得当前数据库的所有表信息 , 数据大小包括碎片、数据、索引M()-getAllTableInfo();### getDataBaseSize 获得数据库大小获得当前数据库大小即所有表碎片、数据、索引之和M()-getDataBaseSize();### getTableSize 获取表大小~~~//获得 news 表大小 , 包含表碎片、数据、索引之和M()-getTableSize(news);~~~### createDatabase 创建数据库~~~//以 gbk 编码创建数据库 testdbM()-createDatabase(testdb,gbk);~~~### truncate 清空表~~~//清空表 news 表并将自增数归零M()-truncate(news);~~~### repair 修复表M()-repair(user);### optimize 优化表M()-optimize(user);### rename 修改表名~~~//将 user 表更名为 tk_user 表M()-rename(user,tk_user);~~~### dropTable 删除表$db-dropTable(user);### beginTrans 开启事务~~~//完成事务处理需要选择表引擎如 InnoDB、NDB、BDB$dataarray(wages100);$db-beginTrans();// 开启事务$db-add($data);// 添加数据$db-commit(); // 提交事务~~~### rollback 事务回滚~~~//当事务完整性被破坏或者其他原因可以通过 rollback 方法放弃本次事务操作$db-rollback();~~~### 提交事务 commit()~~~//如果整个事务完成正确可以通过 commit() 进行事务的提交完成最终操作$dataarray(wages100);$db-beginTrans();// 开启事务$db-add($data);// 添加数据$db-commit();// 提交本次事务~~~