ホームページ > バックエンド開発 > PHPチュートリアル > PHP は DB データベースの mysql クラスをカプセル化します

PHP は DB データベースの mysql クラスをカプセル化します

WBOY
リリース: 2016-07-23 08:54:58
オリジナル
982 人が閲覧しました
  1. // データベースを設定します
  2. define('DB_HOST', '127.0.0.1') // サーバーアドレス
  3. define('DB_USER', 'root'); //ユーザー名
  4. define('DB_PASS', ''); //パスワード
  5. define('DB_DATABASENAME', 'fenxiao') //データベース
  6. {
  7. /*
  8. *変数
  9. **/
  10. private $tablename=""; //テーブル名
  11. private $fieldname="*";
  12. private $conn;
  13. private $where;
  14. private $sql;
  15. function __construct($tablename)
  16. {
  17. //接続を生成します
  18. $this->conn = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("connect failed" . mysql_error ( ));
  19. //データベースを選択
  20. mysql_select_db(DB_DATABASENAME, $this->conn);
  21. //エンコード形式を設定
  22. mysql_query("SET NAMES utf8");
  23. //var_dump($conn ;
  24. }
  25. //条件文を設定します
  26. public function where($where)
  27. {
  28. $this->where=" where ".$where;
  29. return $this;
  30. }
  31. //指定されたフィールドによる
  32. public function field($keyword)
  33. {
  34. $this->fieldname=$keyword;
  35. return $this;
  36. }
  37. // 接続を設定するquery Table
  38. public function table($table1,$table2,$field,$bool)
  39. {
  40. $this->tablename="$table1 LEFT JOIN $table2 ON $table1.$field$bool$table2. $ field";
  41. //print_r($this->tablename);
  42. return $this;
  43. }
  44. //複数テーブルクエリを設定します
  45. public function addtable($table1,$table2 ,$field ,$bool)
  46. {
  47. $this->tablename.=" LEFT JOIN $table2 ON $table1.$field$bool$table2.$field";
  48. //print_r($this-> ;tablename) ;
  49. return $this;
  50. }
  51. //接続クエリテーブルを設定します
  52. ##SELECT * FROM [wx_order LEFT JOIN wx_shopcar ON wx_shopcar.oid=wx_order.oid and wx_order.uid= wx_shopcar.uid LEFT JOIN wx_goods ON wx_shopcar.gid=wx_goods.gid] WHERE wx_order.oid=1 and wx_order.uid=3
  53. public function settable($sql)
  54. {
  55. $this->tablename=$sql ;
  56. // print_r($this->tablename);
  57. return $this;
  58. }
  59. //すべてのデータベースをクエリし、配列形式で出力します
  60. public function select()
  61. {
  62. /**
  63. * データベース内のすべてのデータをクエリします
  64. * */
  65. $arr=array();
  66. //SQL文を実行
  67. $result = mysql_query("select ".$this->fieldname." from ".$this- >テーブル名.$this- >where, $this->conn);
  68. while ($row = mysql_fetch_assoc($result)) {
  69. array_push($arr, $row);
  70. }
  71. return $ arr;
  72. }
  73. //指定したフィールドデータを検索
  74. public function find()
  75. {
  76. //SQL文を実行
  77. $result = mysql_query("select " .$this->フィールド名. " from ".$this->テーブル名.$this->conn);
  78. $result = mysql_fetch_assoc($result);
  79. return $result ;
  80. }
  81. //データベースにデータを追加します
  82. public function add($data)
  83. {
  84. $keysql='';
  85. $valuesql='';
  86. foreach ($data as $key => $value) {
  87. $keysql.=",`$key`";
  88. $valuesql.=",'$value'";
  89. }
  90. $keysql=substr($keysql, 1);
  91. $valuesql=substr ($valuesql, 1);
  92. $result=mysql_query("insert into `".$this->tablename."` ($keysql) VALUES($valuesql)");
  93. $id=mysql_insert_id();
  94. //print_r("insert into `".$this->tablename."` ($keysql) VALUES($valuesql)");
  95. return $id;
  96. }
  97. //データベースを変更する
  98. public function save($data) の内容
  99. {
  100. $keysql='';
  101. $valuesql='';
  102. foreach ($data as $key) => $value) {
  103. $keysql .=",`$key`='$value'";
  104. }
  105. $keysql=substr($keysql, 1);
  106. //print_r($keysql );
  107. //echo "
    ;";
  108. $result=mysql_query("UPDATE `".$this->tablename."` SET ".$keysql.$this->where);
  109. //print_r("UPDATE `".$ this->tablename."` SET ".$keysql.$this->where);
  110. return $result;
  111. }
  112. ##データを削除します
  113. public function delete()
  114. {
  115. $result=mysql_query("DELETE FROM $this->tablename $this->where");
  116. //print_r(" DELETE FROM $this->tablename $this->where");
  117. return $result;
  118. }
  119. }
  120. /**
  121. * mysql_fetch_row: 単一列 [0]=>"111" の各フィールドを返します
  122. * mysql_fetch_field: フィールド情報を取得します。 [0]=> ['name']=> object
  123. * mysql_fetch_array は配列データを返します。 [0]=>"asasds" ['名前']=>
  124. */
  125. ?>
コードをコピー

インストール済み、PHP、mysql


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