首页
开发手册
应用中心
工具
用户中心
FoundPHP 数据库应用
中文简体
中文简体
English
上一篇
下一篇
### FoundPHP 数据库应用 数据库应用有规范,保证效率的前提下我们需要找到一个更好方案,我们采用数组化开发数据库,数据库的操作采用数组结构,框架会对数据进行组合生成对应平台的数据库语句。 考虑到数据库写入、更新的操作统一我们对数据插入更新进行了数组封装,让数据更好兼容更多数据库。 #### 1. 基础数据 plugin/model/default.php ``` $table['a'] = 'articles'; //数据库表 $t_index = 'aid'; //索引id $t_field = '*'; //字段 $t_where = ""; //查询 $t_order = 'aid DESC'; //排序 ``` 语句结果: ``` SELECT * FROM articles ORDER BY aid DESC ``` #### 2. 关联查询 plugin/model/default.php ``` $table['a'] = 'articles'; //数据库表a $table['b'] = 'article_data'; //数据库表b //数据库表b的aid字段关联数据库表a的aid字段 $ljoin['b'] = 'b.aid=a.aid'; $t_index = 'aid'; //索引id $t_field = 'a.*,b.*'; //字段 $t_where = "a.lang='zh'"; //查询条件 $t_order = 'a.aid DESC'; //排序 ``` 语句结果: ``` SELECT a.*,b.* FROM articles a LEFT JOIN article_data b ON b.aid=a.aid WHERE a.lang='zh' ORDER BY a.aid DESC ``` #### 3. 分页方式 FoundPHP集成分页方式,只需要调用pages(数据集),转成变量在模板中调用即可。 plugin/model/default.php ``` //搜索 $t_where = search_where($t_where,30); //排序 $t_order = search_order($t_order); //数据列表 $sql = sql_select( array('sql'=>sql_join(),'where'=>$t_where['text'],'order'=>$t_order, 'type' => 'sql') ); $data_info = limit($sql,$config['set']['limit']); //分页函数 $pages = pages($data_info['info']); ``` plugin/view/default/default.htm ``` 分页:{pages} ``` #### 4. 提交数据验证方法 | 下标 | 是否必须 | 说明 | 用法 | | -------| -------| ------ | ------ | | lang | 是 |错误提示内容 | lang('错误提示内容[搜索显示内容]') | | ope | 是 |数据处理方式 | trim 、intval、floatvavl、strtotime等PHP字符处理方法| | code | 否 |加密处理 | md5 base64加密,常用于密码加密| | long | 否 |字符限制长度 | 5,10 表示字符长度在5,10位之间| | check | 否 |字符判断 | 对经过ope处理之后的字符进行判断,具体用法看Check用法表| | t | 是 |在相应的功能中输出 | 若要在添加功能中输出,在编辑中不输出:'t'=>'add'| | req | 否 |在相应的功能必须填写 | 若要在添加功能中必填,在编辑中不必填:'req'=>'add'| | query | 否 |检测此字段数据是否存在,like 模糊搜索 | 要检测:'query'=>'1'| | search | 否 |自动建立搜索框 | 搜索:'search'=>'1'| ``` $insert[$table['a']] = array( 'titles' => array( //提交内容 //提示语言,[提示项] 出错时提示内容 'lang' => lang('抱歉,没有输入[文章标题]或格式错误'), //trim 去空,boolval布尔值,intval整数值,floatval 浮点值 'ope' => 'trim', //拦截条件!=不为,==,mail邮箱检测 不要输入空格,mobile手机号检测 'check' => "==''", //必填项对应todo之间的操作逗号分割 'req' => "add,edit", //对应todo输出数据,todo之间的操作逗号分割 't' => "add,edit", //是否检测数据库中是否存在,如果值改为like则模糊查询 'query' => 1, //数据列表搜索项 'search' => 'like', ), ); ```