ホームページ > バックエンド開発 > PHPチュートリアル > php pdoカプセル化クラスはmysqlデータの追加、削除、チェック、変更を実装します

php pdoカプセル化クラスはmysqlデータの追加、削除、チェック、変更を実装します

WBOY
リリース: 2016-07-25 08:51:49
オリジナル
1734 人が閲覧しました
  1. define('DSN', 'mysql:host=127.0.0.1;dbname=baozhong_tour') //データベースアドレス+データベース名の定数

  2. define('DB_USERNAME) ', 'root'); //データベース ユーザー名
  3. define('DB_USERPWD', ''); //データベース パスワード
  4. /**
  5. * @作者シュイムガン
  6. * @バージョン 0.2
  7. * @return PDOStatement
  8. */
  9. function getConn() {
  10. try {
  11. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD) //pdo オブジェクトを作成し、データベースパラメータ情報を渡します
  12. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); / データベースエラー情報を設定します
  13. $db->query('set names utf8;'); // エンコードを utf8 に設定します
  14. return $db;
  15. catch (PDOException $e) {
  16. echo 'データ処理エラーです。ウェブサイト管理者に連絡してください!';
  17. print_r($e);//この文はオンラインになった後にコメントする必要があります!
  18. /**
  19. * @author shuimugan
  20. * @version 0.2
  21. * @param String $tablename テーブル名、型は string です
  22. * @param Array $column_name 列名、配列の形式は必須です
  23. * @param String $condition 条件、など'where name=? and pws=?' または 'name like?'
  24. * @param Array $condition_value 条件に対応するデータは、'name=? および pws=? などの配列である必要があります。 ',
  25. * @return 配列は結果セット配列形式を返します
  26. * @example $column_name=array('*');
  27. $limit='limit 0,10'; $res=easy_select('user', $column_name, 'where id=? ', $condition_value,$limit
  28. );*/
  29. function easy_select( $tablename,$column_name,$condition,$condition_value,$limit) {
  30. try {
  31. $db=getConn();
  32. $sql='select ';// SQL ステートメントを初期化します
  33. foreach ($column_name as $col_name) {
  34. // SQL ステートメントに列名を動的に追加します
  35. if($col_name=='*'){
  36. $sql.='*'
  37. break;
  38. }
  39. if($col_name==end($column_name))
  40. {
  41. $sql.=$col_name." ";//それが最後のステートメントである場合、ステートメントはカンマを結合しません
  42. }else {
  43. $sql.=$col_name.", ";//列名 + カンマを結合します
  44. }
  45. }
  46. $sql.="from ".$tablename." ";//結合テーブル名
  47. $sql.=$condition.' ';//結合条件文
  48. if(strlen($limit)> 0){
  49. $sql.=$limit;//limit ステートメントを結合します
  50. }
  51. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD);// PDO オブジェクトを作成し、データベース パラメーター情報を渡します
  52. $db- >setAttribute(PDO:: ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);// データベースのエラー情報を設定します
  53. $db->query('set names utf8;');// エンコードを utf8 に設定します
  54. $stmt = $db- >prepare($sql) ;
  55. $i=1;//カウントを開始します
  56. $j=count($condition_value);
  57. for (; $i $ stmt->bindParam($i , $condition_value[$i-1]);//バインドパラメータ
  58. $i++;
  59. //Query
  60. $stmt->setFetchMode(PDO::FETCH_ASSOC);//Setフィールドを通じてデータを取得する
  61. $stmt ->execute();
  62. //データを取得する
  63. return $stmt->fetchAll();
  64. //return $stmt->rowCount(); e) {
  65. return false;
  66. echo 'データ処理エラー。Web サイト管理者に連絡してください!';
  67. print_r($e);//この文はオンラインになった後にコメントする必要があります。 /**
  68. * @author shuimugan
  69. * @version 0.2
  70. * @param String $tablename テーブル名、型は string です
  71. * @param Array $column_name 列名、配列の形式は必須です
  72. * @param String $condition 条件、などas 'where name=? and pws=?' または 'name like?'
  73. * @param Array $condition_value 条件に対応するデータは、'name=? および pws=? などの配列である必要があります。 ',
  74. * @return int はレコードの数を返します
  75. * @example $column_name=array('*');
  76. $limit='limit 0,10'; $res=easy_selectCount('user', $column_name , 'where id=? ', $condition_value,$limit
  77. );*/
  78. function easy_selectCount($tablename,$column_name,$condition,$condition_value,$limit) {
  79. try {
  80. $db=getConn();
  81. $sql='select ';//初期化sql ステートメント
  82. foreach ($column_name as $col_name) {
  83. // SQL ステートメントに列名を動的に追加します
  84. if($col_name=='*'){
  85. $sql.='*'
  86. }
  87. if; ($col_name==end($ column_name))
  88. {
  89. $sql.=$col_name." ";//それが最後のものに属する場合、ステートメントはカンマを接続しません
  90. }else {
  91. $sql.= $col_name.", ";//列名 + カンマを結合します
  92. }
  93. }
  94. $sql.="from ".$tablename." ";//テーブル名を結合します
  95. $sql.=$condition.'; //スプライシング条件文
  96. if(strlen($limit)> 0){
  97. $sql.=$limit;//スプライシング制限文
  98. }
  99. ;
  100. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD);// PDO オブジェクトを作成し、データベースパラメータ情報を渡します
  101. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//データベースのエラー メッセージを設定します
  102. $db->query('set names utf8;');//エンコーディングを utf8 に設定します
  103. $stmt = $db->prepare($sql);//カウントを開始し、
  104. $j=count($condition_value); の数を計算します
  105. for (; $i $stmt->bindParam($i, $condition_value[$i-1] );/ / バインドパラメータ
  106. $i++;
  107. }
  108. // クエリ
  109. //$stmt->setFetchMode(PDO::FETCH_ASSOC);// フィールドを通じてデータを取得するように設定
  110. $stmt->execute();
  111. // データを取得します
  112. return $stmt->rowCount();
  113. } catch (PDOException $e) {
  114. echo 'データ処理エラー。Web サイト管理者に問い合わせてください!'; ;// 非常に詳細なエラー メッセージです。オンラインになった後、この文をコメントする必要があります。
  115. }
  116. }
  117. /**
  118. * @author shuimugan
  119. * @version 0.2
  120. * @param String $tablename テーブル名、型はstringです
  121. * @param Array $column_name カラム名、配列の形式は必須です
  122. * @param Array $column_value 対応するデータ、要件 配列の形式
  123. * @return int は最後に増分された ID を返します
  124. * @example $column_name=array('pwd','ip','name');
  125. $column_value=array('1246','11.11) .11.11 ','張三');
  126. echo easy_insert('user',$column_name,$column_value);*/
  127. function easy_insert($tablename,$column_name,$column_value) {
  128. try {
  129. $db =getConn( );
  130. $sql='INSERT INTO ';// SQL ステートメントを初期化します
  131. $sql.=$tablename.' (';// テーブル名
  132. foreach ($column_name as $col_name) {
  133. //動的列名を追加 SQL ステートメントを入力します
  134. if($col_name==end($column_name))
  135. {
  136. $sql.=$col_name." )";// 最後の場合は、右括弧を結合します
  137. }else {
  138. $sql.=$col_name.", ";//列名 + カンマを結合
  139. }
  140. }
  141. $sql.=' VALUES (';//$condition_value ステートメントを結合
  142. for ($i=0; $i < count($column_name) ; $i++) {//疑問符を結合しますか? ($i==count($column_name)-1) {
  143. $sql.='?) ;'; $sql.='?,' ;
  144. }
  145. }
  146. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD);//PDO オブジェクトを作成し、データベース パラメーター情報を渡します
  147. $db->setAttribute(PDO: :ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);/ /データベースエラー情報を設定
  148. $db->query('set names utf8;');//エンコードをutf8に設定
  149. $stmt = $db->prepare($sql );
  150. for ($i=1; $i }
  151. // クエリ
  152. // echo $sql;
  153. $stmt->setFetchMode(PDO::FETCH_ASSOC);// フィールドを介してデータを取得するように設定します
  154. $stmt->execute();データの取得
  155. return $db->lastInsertId() ;
  156. } catch (PDOException $e) {
  157. echo 'データ処理エラー。Web サイト管理者に問い合わせてください!'
  158. print_r($e);//非常に詳細なエラー メッセージ。この文はオンラインになった後にコメントする必要があります。 {
  159. try {
  160. $db=getConn();
  161. $sql='UPDATE ';// SQL ステートメントを初期化します
  162. $sql.=$tablename.' SET ';// テーブル名を結合します
  163. foreach ($column_name $col_name) {
  164. //列名を SQL ステートメントに動的に追加します
  165. if($col_name==end($column_name))
  166. {
  167. $sql.=$col_name." = ? ";// に属している場合最後の
  168. }else {
  169. $sql.=$col_name." = ?, " ;//列名 + カンマの結合
  170. }
  171. }
  172. $sql.=$condition;// 条件文の結合
  173. if(strlen($ limit)>0){
  174. $sql.=$limit;//スプライシング制限ステートメント
  175. }
  176. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD);// PDO オブジェクトを作成し、データベース パラメータ情報を渡します
  177. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//データベースエラーメッセージを設定します
  178. $db->query('set names utf8;');//エンコーディングを utf8 に設定します
  179. $stmt = $db->prepare($sql);//準備ステートメント
  180. $i=1;
  181. $total=count($column_name)+count($condition_value)
  182. for (;$i $stmt->bindParam($i, $column_value[$i- 1]);//列名に対応するデータパラメータをバインドします
  183. $i++;
  184. $j=1; (;$i $stmt->bindParam($i, $condition_value[$j-1]);//バインディング条件に対応するデータパラメータ
  185. $i++; ;
  186. }
  187. //Query
  188. $stmt->setFetchMode(PDO::FETCH_ASSOC);//フィールドを通じてデータを取得するように設定
  189. $stmt->execute();
  190. //データを取得
  191. return $stmt->rowCount( ) ;
  192. } catch (PDOException $e) {
  193. return false;
  194. echo 'データ処理エラー。Web サイト管理者に連絡してください!'//この文は後にコメントする必要があります。 Word をオンラインにします
  195. }
  196. }
  197. /**
  198. * @author shuimugan
  199. * @version 0.2
  200. * @param String $tablename テーブル名
  201. * @param String $condition 条件 (例: where id= ?)
  202. * @param Array $condition_value 条件に対応する値は? に対応する値
  203. * @param String $limit 'limit 0,1' などの制限ステートメント
  204. * @return int 影響を受ける結果の数を返す
  205. * @example $condition_value=array('83');
  206. echo easy_delete( 'ユーザー'、'どこ ID =?'、$condition_value、null);*/
  207. function easy_delete($tablename,$condition,$condition_value,$limit) {
  208. try {
  209. $db=getConn(); DELETE FROM ';//SQL文を初期化
  210. $sql.=$tablename.' ';//テーブル名を結合
  211. $sql.=$condition;//条件文を結合
  212. if(strlen($limit)>0) {
  213. $sql.=$limit;//limit ステートメントを結合します
  214. }
  215. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD);// PDO オブジェクトを作成し、データベース パラメーター情報を渡します
  216. $db-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//データベースエラー情報を設定します
  217. $db->query('set names utf8;');//エンコードを utf8 に設定します
  218. $stmt = $db-> prepare($sql) ;//準備ステートメント
  219. for ($i=1;$i $stmt->bindParam($i, $condition_value[$i-1] );// 特定の条件に対応するデータ パラメーターをバインド
  220. $i++;
  221. }
  222. // クエリ
  223. $stmt->setFetchMode(PDO::FETCH_ASSOC);// フィールドを通じてデータを取得するように設定
  224. $stmt->execute ();
  225. // データを取得
  226. return $stmt->rowCount();
  227. return false;
  228. echo 'データ処理エラー。Web サイト管理者に問い合わせてください!'; $e);//非常に詳細なエラー メッセージです。オンラインになった後にこの文をコメントする必要があります!

  229. }

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