WxyCMS二次开发手册
WxyCMS二次开发手册
一、基本目录结构 ..../ 根目录 ..../application 全站应用目录 ..../cache 缓存目录[必须可写入] ..../common 全站公共目录[必须可写入] ..../uploads 默认上传目录[必须可写入] ..../guophp 程序核心目录[不建议修改] ..../themes 前端模板风格目录 ..../index.php 程序单一入口文件 ..../.htaccess Apache伪静态文件[如您不是Apache软件,可根据此规则重写伪静态] application目录下每一个文件夹都是一个单独的模块(module) 每个模块下都有四个文件夹(common、controller、model、view)一个文件(index.html),这几个文件时必须有的,新建模块时也一定要有这几个文件。 以admin模块举例: application ---admin ------common(模块公共目录) ------controller(模块控制器目录) ------model(模块模型目录) ------view(模块视图目录) 二、创建一个新控制器 controller目录中的每一个.php文件都是一个控制器,控制器名称都以.class.php后缀结尾。 新建一个控制器:test 文件名称:test.class.php,控制器类的类名称与控制器文件名必须相同 insert(数组); //$db->insert(array('name'=>'姓名','sex'=>'男')); //$db->insert(array('name'=>'姓名','sex'=>'男'), true); //第二个参数选填 如果为真值 则开启实体转义 //删除内容[返回影响行数] //$db->delete(array('id>'=>'15')); //$db->delete(array(3,4,5), true); //第二个参数存在时,第一个参数为索引数组,批量删除多个 //$db->delete(array('1'=>1)); //删除所有数据 //更新内容[返回影响行数] //$db->update(array('name'=>'姓名','sex'=>'男123'),array('id'=>'10')); //$db->update(array('name'=>'姓名','sex'=>'aaa'),array('id'=>'10'),'1'); //第三个参数选填 如果存在,并为真值 则开启实体转义 //$db->update('click=click+1',array('id'=>"1")); //第一个参数不是数组,类似于更新文章点击数的功能 //查询内容 select方式[返回二维数组] //$result = $db->select(); //$result = $db->field('uname,id')->select(); //$result = $db->where(array('name'=>'%php%'))->select(); //like 查询 //$result = $db->join('`guoguo_admin` ON guoguo_admin.id=guoguo_admintype.id')->where(array('id'=>'1'))->select(); //join 联合查询 //$result = $db->where("typeid in (1,2)")->select(); //SQL : select * from user where typeid in (1,2) //$result = $db->where(array('name'=>'%php%'))->limit('0,5')->select(); //like 查询 //$result = $db->where(array('name'=>'%php%'))->limit('0,5')->order('id desc')->select(); //like 查询 //$result = $db->where(array('sex'=>'男'))->limit('0,5')->select(); //$result = $db->field('uname,id')->where(array('sex'=>'男'))->limit('0,3')->order('id desc')->select(); //$result = $db->field("sex ,count(sex),avg(height),sum(height) ")->group("sex")->having(" avg(height) >160")->select(); //$result = $db->field("sex ,count(sex) as '总个数',avg(height) as '平均身高',sum(height) as '总身高' ")->group('sex')->select(); //$result = $db->field("sex ,count(sex) as '总个数',avg(height) as '平均身高',sum(height) as '总身高' ")->group("sex")->having(" 平均身高 >160")->select(); //条件大于写法 //$res = $db->where(array('id > '=>21))->select(); //同理,不等于或者小于如下 //$res = $db->where(array('id != '=>21))->select(); //P($res); //查询内容 find方式[返回一维数组] //$result = $db->find(); //$result = $db->field('uname,id')->find(); //$result = $db->where("typeid in (1,2)")->find(); //SQL : select * from user where typeid in (1,2) limit 1 //$result = $db->field('id,name,height')->where(array('sex'=>'男'))->find(); //$result = $db->join('`guoguo_admin` ON guoguo_admin.id=guoguo_admintype.id')->where(array('id'=>'1'))->find(); //join 联合查询 //$result = $db->field('uname,id')->where(array('sex'=>'男'))->order('id desc')->find(); //查询记录数[返回记录行数] //$result = $db->total(); //$result = $db->where(array('age>'=>'12'))->total(); //$result = $db->join('`guoguo_admin` ON guoguo_admin.id=guoguo_admintype.id')->where(array('age>'=>'12'))->total(); //自定义执行SQL语句 [guoguo 代表表前缀] //$db->query("select * from guoguo_admin"); //获取一维数组,一条结果 //$db->fetch_array($db->query("select * from guoguo_admin")); //获取二维数组 //$db->fetch_all($db->query("select * from guoguo_admin")); //用于调试程序,输入最后一条SQL语句 //$db->lastsql(); 新增的数据库操作 // 新增 one 方法,用来查询某个字段的值 [返回值为字符串类型] $res = D('admin')->field('rolename')->where(array('adminid'=>1))->one(); P($res); //运行结果 string(15) "超级管理员" $res = D('article')->field('userid')->where(array('id'=>1))->one(); P($res); //运行结果 string(1) "1" //新增 alias 别名方法,用于给表起别名 $admin = D('admin'); $res = $admin->alias('a') ->field('a.adminid,a.adminname,a.rolename,b.address,b.loginip,b.logintime') ->where(array('loginresult'=>1)) ->join('guoguo_admin_login_log b ON a.adminname=b.adminname', 'left') ->limit(5) ->select(); $admin->lastsql(); //最后生成的SQL为: SELECT a.adminid,a.adminname,a.rolename,b.address,b.loginip,b.logintime FROM wxy_admin a LEFT JOIN wxy_admin_login_log b ON a.adminname=b.adminname WHERE loginresult=1 LIMIT 5 // 注意: join里的 “guoguo_” 可表示任意的表前缀,无需修改 // 新增 事务处理 $affair = D('affair'); $affair->start_transaction(); //开启事务 // 模拟业务流程,执行插入和更新操作 $res = $affair->insert(array('name'=>'吉他郭','password'=>'test')); $res2 = D('test')->update(array('name'=>'wxycms','password'=>'123456'), array('id'=>1)); if($res && $res2){ $affair->commit(); //提交事务 }else{ $affair->rollback(); //事务回滚 } 新增的数据库操作 // insert方法新增第4个参数:replace // 语法:insert($data, $filter = false, $primary = true, $replace = false) // $data 要增加的数据,参数为数组 // $filter 是否开启实体转义 // $primary 是否过滤主键 // $replace 是否为replace // 返回值: 成功:返回自动增长的ID,失败:false $data = array(' '=>' ', 'content'=>'content'); D('test')->insert($data, true); // 新增批量插入方法:insert_all // 语法:insert_all($data, $filter = false, $replace = false) // $data 要增加的数据,参数为二维数组 // $filter 是否开启实体转义 // $replace 是否为replace $data = array( array(' '=>' 1', 'content'=>'content1'), array(' '=>' 2', 'content'=>'content2'), array(' '=>' 3', 'content'=>'content3'), ); $res = D('test')->insert_all($data, true); M方法 M是model的首字母,参数为一个model类名称,返回的是一个model类对象,意为加载并实例化本模块下的model类br> U方法br> U是URL的首字母,返回的是一个URL字符串,意为生成URL地址 // 生成当前模块下的当前控制器的add方法URL地址 如:U('add'); // 生成当前模块下的test控制器的add方法URL地址 如:U('test/add') ; // 生成admin模块下的test控制器的add方法URL地址 如:U('admin/test/add') 说明:U('模块名称/控制器名称/方法名称') U方法可以有第二个参数,即可传参 如:U('admin/test/index',array('id'=>1,'status'=>1))和U('admin/test/index','id=1&status=1')是等效的
标签大全纯文字版
返回高效版