PHP PDO カプセル化された静的クラス コード共有

WBOY
リリース: 2016-07-25 08:51:51
オリジナル
1380 人が閲覧しました
  1. /**
  2. * クラス 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 = 新しい CDb($table_name,$db_setting, $db_config);
  20. self::$db=$db;
  21. }else{
  22. $db=self::$db;
  23. }
  24. /**構成
  25. * @param $table_name テーブル名
  26. * @param string $db_setting データベース構成項目の呼び出し
  27. * @param array $db_config データベース構成
  28. * @return CDb
  29. */
  30. init($table_name='',$db_setting='default',$db_config=array()) {
  31. return self::cdb($table_name,$db_setting,$db_config)
  32. }
  33. /**
  34. * レコード削除操作を実行します
  35. * @param $table テーブル名
  36. * @param $condition データの削除条件。空にすることはできません。配列にすることもできます
  37. * @return boolean
  38. * /
  39. public static function delete($table, $condition) {
  40. $db=self::cdb();
  41. $db->setTableName($table);
  42. return $db->delete($condition);
  43. }
  44. /**
  45. * レコード追加操作を実行
  46. * @param $table テーブル名
  47. * @param array $data 追加するデータ、パラメータは配列です。配列のキーがフィールド値、配列の値がデータ値
  48. * @param bool $return_insert_id 新しい ID 番号を返すかどうか
  49. * @param bool $replace データを置換して追加するかどうか
  50. * @return boolean
  51. */
  52. パブリック静的関数 insert($table, $data, $return_insert_id = false, $replace = false) {
  53. $db=self::cdb();
  54. return $db->insert($data, $return_insert_id, $replace);
  55. /**
  56. * 最後に追加されたレコードの主キー番号を取得します
  57. * @return int
  58. */
  59. $db=self::cdb(); db->insert_id ();
  60. }
  61. /**
  62. * レコード更新操作を実行
  63. * @param $table テーブル名
  64. * @param $data 更新するデータ内容、パラメータは配列
  65. * 配列の場合、配列のキーがフィールド値、配列の値はデータの値です
  66. * 配列の場合 [例:array('name'=>'lanmps','password'=>'123456')]
  67. * arrayの別の使い方 array('name '=>'+=1', 'base'=>'-=1');プログラムは自動的に `name` = `name` + 1, `base` = `base` - 1 として解析します
  68. *文字列は次の形式に従ってください:
  69. * string[ 例 2: array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012- 02-10')) ]
  70. * @param $where データ更新の条件、
  71. * string の形式に従ってください:
  72. * string [例 1: " id=1 and time>$time " ]
  73. * string [例2: array('catid=: catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
  74. * 配列 [例: array('name'= >'lanmps','password'=>'123456')]
  75. * @return boolean
  76. */ bbs.it-home.org
  77. パブリック静的関数 update($table, $data, $where) {
  78. $db=self::cdb ();
  79. $ db->setTableName($table);
  80. return $db->update($data,$where);
  81. /**
  82. * 単一レコードのクエリを取得します
  83. * @param array $sql クエリ条件ステートメント
  84. * @return 配列/null データのクエリ結果セット、存在しない場合は空を返します
  85. */
  86. パブリック静的関数 fetchFirst($sql) ) {
  87. $db =self::cdb();
  88. return $db->fetch($sql);
  89. /**
  90. * SQL クエリを実行します
  91. * @param $sql クエリ条件
  92. * @return array クエリ結果セットの配列
  93. */
  94. パブリック静的関数 fetchAll($sql) {
  95. $db =self::cdb ();
  96. return $db->fetchAll($sql);
  97. /**
  98. * SQLクエリを直接実行
  99. * @param $sql SQLステートメントをクエリ
  100. * @return
  101. */
  102. パブリック静的関数クエリ($sql) {
  103. $db=self::cdb ();
  104. return $db->exec($sql);
  105. }
  106. /**
  107. * SQL クエリを実行します
  108. * @param $table テーブル名
  109. * @param $where クエリ条件
  110. * 文字列、形式に従ってください:
  111. * String [例 1: " id=1 and time>$time " ]
  112. *文字列 [例 2: array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
  113. *配列 [例: array('name'=>'lanmps','password'=>'123456')]
  114. * @param $fields 問い合わせるフィールド値 [例 `name`, `gender` , `birthday`]
  115. * @param $limit 返される結果の範囲 [例: デフォルトでは 10 または 10,10 が空]
  116. * @param $order ソート方法 [デフォルトはデータベースのデフォルトの方法でソートされます]
  117. * @param $groupグループ化メソッド [デフォルトは空]
  118. * @return array クエリ結果セットの配列
  119. */
  120. public static function select($table,$where = '', $fields = '*', $制限 = '', $order = '', $group = '') {
  121. $db=self::cdb();
  122. $db->setTableName($table); $where , $fields , $limit, $order, $group);
  123. }
  124. /**
  125. * 単一レコードのクエリを取得します
  126. * @param $table テーブル名
  127. * @param array $where クエリ条件文
  128. * 文字列、形式に従ってください:
  129. * 文字列 [例 2: array('catid=:catid AND time> ; =:time ',array(':catid'=>10,':time'=>'2012-02-10')) ]
  130. * 配列 [例: array('name'=>' lanmps' ,'password'=>'123456')]
  131. * @param string $fields 問い合わせるフィールド値 [例: `name`,`gender`,`birthday`]
  132. * @param string $order 並べ替え方法[デフォルトでは、データベースのデフォルトメソッドに従ってソートされます]
  133. * @param string $group グループ化メソッド [デフォルトは空]
  134. * @return 配列/null データクエリ結果セット、存在しない場合は空を返します
  135. */
  136. パブリック静的関数 getOne($table,$where,$fields = '*', $order = ' ', $group = '') {
  137. $db=self::cdb();
  138. $db->setTableName($table);
  139. return $db->get_one($where , $fields,$order, $グループ);
  140. /**
  141. * 複数のデータをクエリしてページ付けします
  142. * @param $table テーブル名
  143. * @param $where クエリ条件
  144. * 文字列、形式に従ってください:
  145. * 文字列 [例 1: " id=1 and time>$time " ]
  146. * 文字列 [例 2: array('catid=:catid AND time>=:time ',array(':catid'=>10,':time'=>'2012-02-10' ) ) ]
  147. * 配列 [例: array('name'=>'lanmps','password'=>'123456')]
  148. * @param $fields field*,id
  149. * @param $order sort id desc ,orderlist asc
  150. * @param $page ページ番号 1
  151. * @param $pagesize ページごとの項目数
  152. * @return array('data'=>data,'count'=>レコードの総数)
  153. */
  154. public static function listInfo($table,$where = '',$fields='*', $order = '', $page = 1, $pagesize = 20) {
  155. $ db=self::cdb();
  156. $db->setTableName($table);
  157. $d=$db->listinfo($where,$fields, $order, $page, $pagesize);
  158. return array('data'=>$d,'count'=>self::$db->number);
  159. }
  160. /**最初のパラメータ値
  161. * @param $sql
  162. * @returnmixed
  163. */
  164. パブリック静的関数 resultFirst($sql){
  165. $db=self::cdb();
  166. return $db->resultFirst($sql);
  167. }
  168. }
复制代码

调用方法:

DB::insert('テスト',array('名前'=>'テスト'));


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート