FoundPHP 数据库应用
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',
),
);