ホームページ  >  記事  >  バックエンド開発  >  データベース操作のPHPクラス

データベース操作のPHPクラス

WBOY
WBOYオリジナル
2016-07-25 08:44:271020ブラウズ
  1. /*
  2. * 著者 Molong
  3. * 時刻 2010 年 12 月 2 日 15:50:35
  4. */
  5. $db = new mysql($db_host,$db_user,$db_password, $db_table, $db_conn,$pre,$coding);
  6. プライベート $db_user;
  7. プライベート $db_table;
  8. データベース接続識別; result; //実行するクエリコマンドの結果リソース識別
  9. private $sql; //SQL 実行ステートメント
  10. private $prefix; //データベースエンコーディング、GBK、UTF8、gb2312
  11. function __construct; ($db_host,$db_user,$db_password,$db_table,$db_conn,$pre,$coding){
  12. $this->db_host = $db_host;
  13. $this->db_user = $db_user; >db_password = $db_password;
  14. $this->db_table = $db_conn;
  15. $this->pre = $pre; ;
  16. $this->connect();
  17. }
  18. 関数 connect(){
  19. $this->db_conn = @mysql_connect($this->db_host,$this->db_user, $this- >db_password) または die($this->show_error("データベース リンク エラー。データベース リンクの構成を確認してください。 "));
  20. if(!mysql_select_db($this->db_table,$this->db_conn)){
  21. echo "データ テーブルが見つかりません: ".$this->db_table;
  22. }
  23. mysql_select_db($ this->db_table,$this->db_conn);
  24. $this->query("SET NAMES $this->coding");
  25. }
  26. /*SQL ステートメントを実行する関数*/
  27. function query ($sql){
  28. if(emptyempty($sql)){
  29. $this->show_error("SQL ステートメントを空にすることはできません。");
  30. }else{
  31. $this->sql = $sql;
  32. }
  33. $result = mysql_query($this->sql,$this->db_conn);
  34. return $this->result = $result; }
  35. /*新しいデータベースを作成して追加します*/
  36. public function create_database($database_name){
  37. $database=$database_name;
  38. $sqlDatabase = 'データベースを作成します '.$database; - >query($sqlDatabase);
  39. }
  40. // 選択クエリの結果に基づいて結果セット項目の数を計算します
  41. public function db_num_rows(){
  42. if($this->result==null){
  43. if($this->show_error){
  44. $this->show_error("SQL ステートメントエラー!");
  45. }
  46. }else{
  47. return mysql_num_rows($this->result);
  48. /*すべてのサーバー データベースをクエリします*/
  49. //より直感的に表示するには、システム データベースとユーザー データベースを分離しますか?
  50. public function show_databases(){
  51. $this->query("show Databases");
  52. echo "Existingデータベース:".$ amount =$this->db_num_rows($rs);
  53. echo "
    ";
  54. $i=1;
  55. while($row = $this->fetch_array($rs) )){
  56. echo "$i $row[Database]";
  57. echo "
    "
  58. $i++; }
  59. }
  60. // ホスト内のすべてのデータベース名を配列形式で返します
  61. public関数データベース()
  62. {
  63. $rsPtr=mysql_list_dbs($this->db_conn);
  64. $cnt=mysql_num_rows($rsPtr)
  65. {
  66. $rs []=mysql_db_name($ rsPtr,$i);
  67. $i++;
  68. return print_r($rs); }
  69. /*データベース内のすべてのテーブルをクエリします*/
  70. function show_tables($database_name) this->query( "show tables");
  71. echo "既存のデータベース:".$amount = $this->db_num_rows($rs);
  72. echo "
    "; ;
  73. while($ row = $this->fetch_array($rs)){
  74. $columnName="Tables_in_".$database_name;
  75. echo "
    ";
  76. $i++;
  77. }
  78. }
  79. /*
  80. mysql_fetch_row() 配列 $row[0],$row[1],$row[2]
  81. mysql_fetch_array() 配列 $row[0] または $ row[id]
  82. mysql_fetch_assoc() 配列は $row->content フィールドの大文字と小文字を区別します
  83. mysql_fetch_object() オブジェクトは $row[id],$row[content] フィールドの大文字と小文字を区別します
  84. */
  85. /*レコードセットを取得します。配列インデックスと関連付けを取得します。 $row['content'] を使用します */
  86. public function fetch_array()
  87. {
  88. return @mysql_fetch_array($this->result)
  89. }
  90. // 関連付け配列を取得します。 use $row[' フィールド名']
  91. public function fetch_ass()
  92. {
  93. return @mysql_fetch_assoc($this->result)
  94. }
  95. // 数値インデックス配列を取得し、$row[0],$ を使用しますrow[1],$row [2]
  96. public function fetch_row()
  97. {
  98. return @mysql_fetch_row($this->result)
  99. }
  100. // オブジェクト配列を取得し、$row->content を使用します
  101. public function fetch_Object()
  102. {
  103. return @mysql_fetch_object($this->result);
  104. }
  105. //簡略化されたクエリ select
  106. public function findall($table){
  107. $table = $this->fulltablename($ table);
  108. $this->query("select * from $table");
  109. }
  110. public function select($table,$columnName,$condition){
  111. $table = $this->fulltablename($ table);
  112. if(emptyempty( $columnName)){
  113. $columnName = "*" }
  114. $this->query("SELECT $columnName FROM $table $condition");
  115. // 簡略化挿入
  116. 関数 insert($table ,$arr){
  117. $table = $this->fulltablename($table);
  118. $sql = "INSERT INTO $table ";
  119. if(!is_array($arr)){
  120. $this->show_error( "パラメータ配列を入力してください。");
  121. }else{
  122. $k = "";
  123. $v = "";
  124. foreach($arr as $key => $value){
  125. $k .= "`$key`,";
  126. $v .= "'".$value."',"
  127. }
  128. }
  129. $sql = $sql." (".substr($k,0,-1).") VALUES (".substr($v,0,-1).")";
  130. $this->query($sql);
  131. }
  132. //化された更新
  133. function update($table,$arr,$where){
  134. $table = $this->fulltablename($table);
  135. $sql = "UPDATE $table SET "; ($arr)){
  136. $this->show_error("请输入パラメータ数组!");
  137. }else{
  138. foreach($arr as $key => $value){
  139. $sql .= " `".$key."` = '".$value."' ,";
  140. }
  141. }
  142. $sql = substr($sql,0,-1)." where ".$where;
  143. return $this->query($sql);
  144. }
  145. // 簡略化された削除
  146. 関数 delete($ table ,$where = ""){
  147. $table = $this->fulltablename($table);
  148. if(emptyempty($where)){
  149. $this->show_error("条件を空にすることはできません!") ;
  150. }else{
  151. $where = " where ".$where;
  152. $sql = "$table ".$where から削除します
  153. //echo $sql; return $this->query($sql ) ;
  154. }
  155. //前の INSERT 操作によって生成された ID を取得します
  156. public function insert_id(){
  157. return mysql_insert_id();
  158. }
  159. // プレフィックス付きデータテーブル
  160. public function fulltablename($table){
  161. return $ table = $this->pre.$table;
  162. }
  163. //フィールドの数を問い合わせる
  164. public function num_fields($table){
  165. $table = $this->fulltablename($table); $ this ->query("select * from $table");
  166. echo "
    ";
  167. echo "フィールド数: ".$total = mysql_num_fields($this->result);
    "; </li>
    <li> for ($i=0; $i print_r(mysql_fetch_field($this->result,$i) ); </li>
    <li> } </li>
    <li> echo "
    ;";
  168. echo "
    ";
  169. }
  170. //MySQL サーバー情報を取得
  171. public function mysql_server($num=''){
  172. switch ($num){
  173. case 1:
  174. return mysql_get_server_info (); //MySQL サーバー情報
  175. case 2 :
  176. return mysql_get_host_info(); // MySQL ホスト情報を取得
  177. case 3 :
  178. return mysql_get_client_info() // ;
  179. ケース 4:
  180. return mysql_get_proto_info(); //MySQL プロトコル情報を取得する
  181. デフォルト:
  182. return mysql_get_client_info() // デフォルトで mysql のバージョン情報を取得する
  183. }
  184. }
  185. // 、自動的にデータベース、ガベージ コレクション メカニズムを閉じる
  186. /*public function __destruct()
  187. {
  188. if(!empty($this->result)){
  189. $this->free() }
  190. mysql_close($this - >$db_conn);
  191. }*/
  192. /*クライアントの実際のIPアドレスを取得*/
  193. function getip(){
  194. if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "不明"))
  195. {
  196. $ip = getenv("HTTP_CLIENT_IP");
  197. }
  198. else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){
  199. $ip = getenv ("HTTP_X_FORWARDED_FOR");
  200. }
  201. else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
  202. {
  203. $ip = getenv("REMOTE_ADDR"); if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){
  204. $ip = $_SERVER['REMOTE_ADDR']
  205. ; }
  206. else{
  207. $ip = "unknown";
  208. }
  209. return($ip); }
  210. function show_error($str){
  211. echo ""
  212. }
  213. }
  214. コードをコピーします
  215. PHP
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。