Data.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. namespace Test\Lib;
  3. use Dever;
  4. class Data
  5. {
  6. //public function test_commit(){}
  7. # 直接使用方法
  8. public function test()
  9. {
  10. $id = Dever::input('id', 'is_numeric', 'ID');
  11. # 取前10条
  12. $set['limit'] = '0, 10';
  13. # 获取字段
  14. $set['col'] = '*';
  15. # 排序
  16. $set['order'] = 'id desc';
  17. # 分组
  18. //$set['group'] = 'id';
  19. # 查询条件 注意,key值中的#号代表重复使用该字段,如果使用自定义方法没有此种情况
  20. $where['id'] = $id;
  21. /*
  22. # 模糊查询
  23. $where['name'] = array('like', 'test');
  24. # in查询
  25. $where['id#'] = array('in', '1');
  26. # 获取区间值
  27. $where['cdate'] = array('between', array(1,2));
  28. # 获取>1的数据
  29. $where['cdate#'] = array('>', 1);
  30. # 获取<2的数据
  31. $where['cdate##'] = array('<', 2);
  32. # 增加or查询
  33. $where['or'] = array
  34. (
  35. 'name' => 'test1',
  36. 'desc' => 'test',
  37. );
  38. # 增加or查询
  39. $where['or#'] = array
  40. (
  41. 'name' => 'test1',
  42. 'desc' => 'test',
  43. );
  44. # 增加or查询
  45. $where['or1'] = array
  46. (
  47. 'name' => 'test1',
  48. 'desc' => 'test',
  49. );
  50. # 联表查询
  51. $set['join'] = array
  52. (
  53. array
  54. (
  55. 'table' => 'info',
  56. 'type' => 'left join',
  57. 'on' => 'info.goods_id=news.id',
  58. ),
  59. );
  60. # 常用方法
  61. # 支持大量数据的多条方法
  62. $data = Dever::db('news', 'demo')->load(array('id' => 1), $set);
  63. # 多条查询支持直接循环使用
  64. foreach($data as $k => $v) {
  65. $s[] = $v;
  66. }
  67. # 多条查询支持后续方法:fetch fetchAll rowCount fetchColumn
  68. $data = $data->fetchAll();
  69. # 多条查询 建议用limit,别查询太多
  70. $data = Dever::db('news', 'demo')->select(array('id' => 1), $set);
  71. # 单条查询
  72. $data = Dever::db('news', 'demo')->find(1);
  73. # 获取统计数据
  74. $data = Dever::db('news', 'demo')->count(array('id' => 1));
  75. $ 插入数据
  76. $data = Dever::db('news', 'demo')->insert(array('name' => 'xingxing'));
  77. # 更新数据
  78. $data = Dever::db('news', 'demo')->update(array('id' => 6), array('desc' => 'ceshi'));
  79. # 更新数据并num+1
  80. $data = Dever::db('news', 'demo')->update(array('id' => 1), array('desc' => '22222', 'num' => array('+', 1)));
  81. # 删除数据
  82. $data = Dever::db('news', 'demo')->delete(array('id' => 6));
  83. # sql形式 {table} 当前表名
  84. $data = Dever::db('news', 'demo')->query('select * from {table} limit 0, 5');
  85. # 分页
  86. $set['num'] = 10;
  87. # 只获取该页的数据
  88. //$set['page'] = 1;
  89. $data = Dever::db('news', 'demo')->select([], $set);
  90. # sql语句形式分页
  91. //$data = Dever::db('news', 'demo')->query('select * from {table} limit 0, 5', array(), $set);
  92. # 获取分页信息,list是分页模板名称,不传则不生成模板
  93. $page = Dever::page('list');
  94. print_r($page);die;
  95. $data = Dever::db('news', 'demo')->select(array('id' => 2), $set);
  96. # 自定义方法 getAll为自定义的方法
  97. $data = Dever::db('news', 'demo')->getAll(array('id1' => 2, 'state' => 2), $set);
  98. $data = Dever::db('news', 'demo')->updateNum(array('id' => 1), array('desc' => '22222', 'num' => 1));
  99. $data = Dever::db('news', 'demo')->insert(array('name' => 'xingxing2', 'num' => 1, 'desc' => '描述', 'cdate' => time()+86400));
  100. $where['id'] = 1;
  101. //$where['name1'] = 'xingxing';
  102. $data = Dever::db('news', 'demo')->select($where, $set);
  103. */
  104. # 悲观锁
  105. $data = Dever::db('news', 'demo')->select([], $set, true);
  106. # 乐观锁
  107. //$data = Dever::db('news', 'demo')->update(array('id' => 1), array('desc' => '22222', 'num' => array('+', 1)), true);
  108. return $data;
  109. }
  110. }