当前位置:Gxlcms > PHP教程 > PHPPDO封装静态类代码分享

PHPPDO封装静态类代码分享

时间:2021-07-01 10:21:17 帮助过:67人阅读

  1. /**
  2. * Class DB
  3. * 数据库操作类
  4. */
  5. class DB {
  6. /**
  7. * @var
  8. * @return CDB
  9. */
  10. private static $db;
  11. /**获取CDb类
  12. * @param $table_name 表名称
  13. * @param string $db_setting 调用数据库配置项
  14. * @param array $db_config 数据库配置
  15. * @return CDb
  16. */
  17. public static function cdb($table_name='',$db_setting='default',$db_config=array()){
  18. if(!isset(self::$db)){
  19. $db = new CDb($table_name,$db_setting,$db_config);
  20. self::$db=$db;
  21. }else{
  22. $db=self::$db;
  23. }
  24. return $db;
  25. }
  26. /** 配置
  27. * @param $table_name 表名称
  28. * @param string $db_setting 调用数据库配置项
  29. * @param array $db_config 数据库配置
  30. * @return CDb
  31. */
  32. public static function init($table_name='',$db_setting='default',$db_config=array()) {
  33. return self::cdb($table_name,$db_setting,$db_config);
  34. }
  35. /**
  36. * 执行删除记录操作
  37. * @param $table 表名称
  38. * @param $condition 删除数据条件,不充许为空。可以为数组
  39. * @return boolean
  40. */
  41. public static function delete($table, $condition) {
  42. $db=self::cdb();
  43. $db->setTableName($table);
  44. return $db->delete($condition);
  45. }
  46. /**
  47. * 执行添加记录操作
  48. * @param $table 表名称
  49. * @param array $data要增加的数据,参数为数组。数组key为字段值,数组值为数据取值
  50. * @param bool $return_insert_id 是否返回新建ID号
  51. * @param bool $replace 是否采用 replace into的方式添加数据
  52. * @return boolean
  53. */
  54. public static function insert($table, $data, $return_insert_id = false, $replace = false) {
  55. $db=self::cdb();
  56. $db->setTableName($table);
  57. return $db->insert($data, $return_insert_id, $replace);
  58. }
  59. /**
  60. * 获取最后一次添加记录的主键号
  61. * @return int
  62. */
  63. public static function insertID() {
  64. $db=self::cdb();
  65. return $db->insert_id();
  66. }
  67. /**
  68. * 执行更新记录操作
  69. * @param $table 表名称
  70. * @param $data 要更新的数据内容,参数为数组
  71. * 为数组时数组key为字段值,数组值为数据取值
  72. * 为数组时[例: array('name'=>'lanmps','password'=>'123456')]
  73. * 数组的另一种使用array('name'=>'+=1', 'base'=>'-=1');程序会自动解析为`name` = `name` + 1, `base` = `base` - 1
  74. * 字符串,请按照格式 :
  75. * 字符串 [例2:array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
  76. * @param $where 更新数据时的条件,
  77. * 字符串,请按照格式 :
  78. * 字符串 [例1:" id=1 and time>$time " ]
  79. * 字符串 [例2:array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
  80. * 数组时 [例: array('name'=>'lanmps','password'=>'123456')]
  81. * @return boolean
  82. */ bbs.it-home.org
  83. public static function update($table, $data, $where) {
  84. $db=self::cdb();
  85. $db->setTableName($table);
  86. return $db->update($data,$where);
  87. }
  88. /**
  89. * 获取单条记录查询
  90. * @param array $sql 查询条件语句
  91. * @return array/null数据查询结果集,如果不存在,则返回空
  92. */
  93. public static function fetchFirst($sql) {
  94. $db=self::cdb();
  95. return $db->fetch($sql);
  96. }
  97. /**
  98. * 执行sql查询
  99. * @param $sql查询条件
  100. * @return array 查询结果集数组
  101. */
  102. public static function fetchAll($sql) {
  103. $db=self::cdb();
  104. return $db->fetchAll($sql);
  105. }
  106. /**
  107. * 直接执行sql查询
  108. * @param $sql 查询sql语句
  109. * @return
  110. */
  111. public static function query($sql) {
  112. $db=self::cdb();
  113. return $db->exec($sql);
  114. }
  115. /**
  116. * 执行sql查询
  117. * @param $table 表名称
  118. * @param $where 查询条件
  119. * 字符串,请按照格式 :
  120. * 字符串 [例1:" id=1 and time>$time " ]
  121. * 字符串 [例2:array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
  122. * 数组时 [例: array('name'=>'lanmps','password'=>'123456')]
  123. * @param $fields需要查询的字段值[例`name`,`gender`,`birthday`]
  124. * @param $limit 返回结果范围[例:10或10,10 默认为空]
  125. * @param $order 排序方式 [默认按数据库默认方式排序]
  126. * @param $group 分组方式 [默认为空]
  127. * @return array 查询结果集数组
  128. */
  129. public static function select($table,$where = '', $fields = '*', $limit = '', $order = '', $group = '') {
  130. $db=self::cdb();
  131. $db->setTableName($table);
  132. return $db->select($where , $fields , $limit, $order , $group);
  133. }
  134. /**
  135. * 获取单条记录查询
  136. * @param $table 表名称
  137. * @param array $where查询条件语句
  138. * 字符串,请按照格式 :
  139. * 字符串 [例2:array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
  140. * 数组时 [例: array('name'=>'lanmps','password'=>'123456')]
  141. * @param string $fields 需要查询的字段值[例`name`,`gender`,`birthday`]
  142. * @param string $order 排序方式 [默认按数据库默认方式排序]
  143. * @param string $group 分组方式 [默认为空]
  144. * @return array/null数据查询结果集,如果不存在,则返回空
  145. */
  146. public static function getOne($table,$where,$fields = '*', $order = '', $group = '') {
  147. $db=self::cdb();
  148. $db->setTableName($table);
  149. return $db->get_one($where , $fields,$order, $group);
  150. }
  151. /**
  152. * 查询多条数据并分页
  153. * @param $table 表名称
  154. * @param $where 查询条件
  155. * 字符串,请按照格式 :
  156. * 字符串 [例1:" id=1 and time>$time " ]
  157. * 字符串 [例2:array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
  158. * 数组时 [例: array('name'=>'lanmps','password'=>'123456')]
  159. * @param $fields字段 *,id
  160. * @param $order 排序 id desc ,orderlist asc
  161. * @param $page 页码 1
  162. * @param $pagesize 每页条数
  163. * @return array('data'=>数据,'count'=>记录总数)
  164. */
  165. public static function listInfo($table,$where = '',$fields='*', $order = '', $page = 1, $pagesize = 20) {
  166. $db=self::cdb();
  167. $db->setTableName($table);
  168. $d=$db->listinfo($where,$fields, $order, $page, $pagesize);
  169. return array('data'=>$d,'count'=>self::$db->number);
  170. }
  171. /**第一个参数值
  172. * @param $sql
  173. * @return mixed
  174. */
  175. public static function resultFirst($sql){
  176. $db=self::cdb();
  177. return $db->resultFirst($sql);
  178. }
  179. }

调用方法:

DB::insert('test',array('name'=>'test'));

人气教程排行