FoundPHP 数据库应用

FoundPHP 数据库应用

数据库应用有规范,保证效率的前提下我们需要找到一个更好方案,我们采用数组化开发数据库,数据库的操作采用数组结构,框架会对数据进行组合生成对应平台的数据库语句。
考虑到数据库写入、更新的操作统一我们对数据插入更新进行了数组封装,让数据更好兼容更多数据库。

1. 基础数据

plugin/model/default.php

  1. $table['a'] = 'articles'; //数据库表
  2. $t_index = 'aid'; //索引id
  3. $t_field = '*'; //字段
  4. $t_where = ""; //查询
  5. $t_order = 'aid DESC'; //排序

语句结果:

  1. SELECT * FROM articles ORDER BY aid DESC

2. 关联查询

plugin/model/default.php

  1. $table['a'] = 'articles'; //数据库表a
  2. $table['b'] = 'article_data'; //数据库表b
  3. //数据库表b的aid字段关联数据库表a的aid字段
  4. $ljoin['b'] = 'b.aid=a.aid';
  5. $t_index = 'aid'; //索引id
  6. $t_field = 'a.*,b.*'; //字段
  7. $t_where = "a.lang='zh'"; //查询条件
  8. $t_order = 'a.aid DESC'; //排序

语句结果:

  1. 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

  1. //搜索
  2. $t_where = search_where($t_where,30);
  3. //排序
  4. $t_order = search_order($t_order);
  5. //数据列表
  6. $sql = sql_select( array('sql'=>sql_join(),'where'=>$t_where['text'],'order'=>$t_order, 'type' => 'sql') );
  7. $data_info = limit($sql,$config['set']['limit']);
  8. //分页函数
  9. $pages = pages($data_info['info']);

plugin/view/default/default.htm

  1. <!--分页变量调用-->
  2. 分页:{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’
  1. $insert[$table['a']] = array(
  2. 'titles' => array( //提交内容
  3. //提示语言,[提示项] 出错时提示内容
  4. 'lang' => lang('抱歉,没有输入[文章标题]或格式错误'),
  5. //trim 去空,boolval布尔值,intval整数值,floatval 浮点值
  6. 'ope' => 'trim',
  7. //拦截条件!=不为,==,mail邮箱检测 不要输入空格,mobile手机号检测
  8. 'check' => "==''",
  9. //必填项对应todo之间的操作逗号分割
  10. 'req' => "add,edit",
  11. //对应todo输出数据,todo之间的操作逗号分割
  12. 't' => "add,edit",
  13. //是否检测数据库中是否存在,如果值改为like则模糊查询
  14. 'query' => 1,
  15. //数据列表搜索项
  16. 'search' => 'like',
  17. ),
  18. );

Ease Template 模板调试平台 [PHP Ver:7.3.32] (Power by FoundPHP.com) [清除缓存]
缓存 ID: 1 索引模式: True 缓存目录: data/FoundPHP_v407864A/cache/manual/ 模板目录: plugin/view/default/manual/
模板格式: htm 占用内存: 1.91 mb 运行时间: 0.0180秒 技术支持: ET.FoundPHP.com
打开模板文件: 3个
plugin/view/default/header.htm
修改: 2022-08-04 16:56 大小: 5.66KB
plugin/view/default/manual/default.htm
修改: 2024-12-20 10:04 大小: 5.9KB
plugin/view/default/footer.htm
修改: 2022-08-04 16:56 大小: 5.07KB
载入PHP文件数: 13
index.php  1.31KB
修改: 2024-09-03 14:37 运行时间:0.000
plugin/controller.php  47.2KB
修改: 2024-09-03 15:01 运行时间:0.000
data/config.php  10.01KB
修改: 2024-12-20 10:05 运行时间:0.000
plugin/class/template/ease_template.php  52.99KB
修改: 2021-10-02 12:06 运行时间:0.000
plugin/function/globals.php  6.05KB
修改: 2021-04-28 11:45 运行时间:0.000
plugin/class/foundphp/encrypt.php  5.63KB
修改: 2021-02-09 12:48 运行时间:0.000
plugin/class/foundphp/zip.php  2.6KB
修改: 2021-03-02 17:13 运行时间:0.000
plugin/class/image/resize.php  21.25KB
修改: 2022-10-28 16:55 运行时间:0.000
plugin/class/file/upload.php  17.22KB
修改: 2021-01-16 18:15 运行时间:0.000
plugin/class/database/dbo.php  31.88KB
修改: 2022-10-28 16:54 运行时间:0.000
plugin/class/database/mysqli.php  3.91KB
修改: 2022-10-28 16:54 运行时间:0.001
plugin/function/manual.php  5.77KB
修改: 2020-12-29 18:31 运行时间:0.001
plugin/model/manual/default.php  3.37KB
修改: 2024-12-20 10:03 运行时间:0.001

FoundPHP DataBase Object 调试平台 (Power by FoundPHP.com)
数据库: MYSQL 5.7.44-log 技术支持: 127.0.0.1 数据库: DB.FoundPHP.com
库名: foundphp_com 帐号: foundphp_com 编码: utf8mb4
数据查询(执行语句:7条)
SELECT * FROM n_category WHERE fid=0 AND types='article_cate' ORDER BY orders ASC,cate_id ASC 
运行时间: 2025-04-05 11:01:57 0.002
SELECT * FROM n_category WHERE fid>0 AND types='article_cate' ORDER BY orders ASC,cate_id ASC 
运行时间: 2025-04-05 11:01:57 0.003
SELECT cate_id,language,cate_name FROM n_category WHERE types='sys_language'  
运行时间: 2025-04-05 11:01:57 0.004
SELECT a.*,b.subject,b.content,b.md_content,c.reader FROM n_articles a LEFT JOIN n_article_data b ON b.aid=a.aid LEFT JOIN n_category c ON c.cate_id=a.cate_id WHERE a.cate_id='1821' AND a.cases='phpcourse' AND b.lang="zh"  
运行时间: 2025-04-05 11:01:57 0.005
SELECT lang FROM n_article_data WHERE aid='1810'  
运行时间: 2025-04-05 11:01:57 0.005
UPDATE n_articles SET `views` = views+1 WHERE aid='1821' 
运行时间: 2025-04-05 11:01:57 0.008
UPDATE n_category SET `reader` = reader+1 WHERE cate_id='1821' 
运行时间: 2025-04-05 11:01:57 0.010