亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php連接mysql數據庫mysql.class.php

2024-09-04 11:44:16
字體:
來源:轉載
供稿:網友

本文章是一款比較實例的php 連接mysql數據庫的連接類,比起一般的php mysql數據庫函數要實用方法了很多,操作維護起來也很簡單,只要處理這一個文伯就KO了,實例類代碼如下:

  1. /* 
  2. ?+----------------------------------------------------------------------- 
  3. | 文件概要:php連接mysql數據庫 
  4. | 文件名稱:mysql.class.php 
  5. | 創建時間:2010-9-7 
  6. +----------------------------------------------------------------------- 
  7. */ 
  8. class mysql { 
  9.  private $server//服務器名 
  10.  private $user//數據庫用戶名 
  11.  private $password//數據庫密碼 
  12.  private $database//數據庫名 
  13.  private $link//mysql連接標識符 
  14.  private $charset = "utf8"//數據庫編碼,默認為utf8 
  15.  /*===================================================== 
  16.   * 方法:__construct 
  17.   * 功能:構造函數 
  18.   * 參數:$server,$user,$password,$database,$charset 
  19.   * 說明:實例化時自動連接數據庫. 
  20.   ====================================================*/ 
  21.  function __construct($server$user$password$database$charset) { 
  22.   $this->server = $server
  23.   $this->user = $user
  24.   $this->password = $password
  25.   $this->database = $database
  26.   $this->charset = $charset
  27.   $this->connect(); 
  28.  } 
  29.  /*==================================================== 
  30.   * 方法:connect 
  31.   * 功能:連接數據庫 
  32.   * 參數:無 
  33.   * 說明:連接mysql服務器,連接數據庫,設置字符編碼 
  34.   ===================================================*/ 
  35.  function connect() { 
  36.   $this->link = mysql_connect($this->server, $this->user, $this->password) or die($this->error("數據庫服務器連接出錯!")); 
  37.   mysql_select_db($this->database, $this->link) or die($this->error("數據庫連接出錯!")); 
  38.   mysql_query("set names '$this->charset'"); 
  39.  } 
  40.  /*=================================================== 
  41.   * 方法:query 
  42.   * 功能:執行sql 
  43.   * 參數:$sql 
  44.   * 說明:對傳過來的sql語句執行,并返回結果$result資源標識符 
  45.   ==================================================*/ 
  46.  function query($sql) { 
  47.   $result = mysql_query($sql$this->link); 
  48.   if (!$result) { 
  49.    $this->error($sql . "語句執行失敗!"); 
  50.    return false; 
  51.   } else { 
  52.    return $result
  53.   } 
  54.  }  
  55.  
  56.  /*=================================================== 
  57.   * 方法:fetcharray 
  58.   * 功能:從結果集中取一行做為數組 
  59.   * 參數:$result資源標識符 
  60.   * 說明:需要提供sql語句執行返回的資源標識符 
  61.   ==================================================*/ 
  62.  function fetcharray($result) { 
  63.   return mysql_fetch_array($result); 
  64.  } 
  65.  /*=================================================== 
  66.   * 方法:fetchall 
  67.   * 功能:從結果集中取出所有記錄做為二維數組$arr 
  68.   * 參數:$result資源標識符 
  69.   * 說明:循環取所有記錄保存為$arr 
  70.   ==================================================*/ 
  71.  function fetchall($result) { 
  72.   $arr[] = array (); 
  73.   while ($row = mysql_fetch_array($result)) { 
  74.    $arr[] = $row
  75.   } 
  76.   mysql_free_result($result); 
  77.   return $arr
  78.  } 
  79.  /*=================================================== 
  80.   * 方法:numrows 
  81.   * 功能:統計結果集中記錄數 
  82.   * 參數:$result資源標識符 
  83.   * 說明:統計行數 
  84.   ==================================================*/ 
  85.  function numrows($result) { 
  86.   return mysql_num_rows($result); 
  87.  } 
  88.  /*=================================================== 
  89.   * 方法:numfields 
  90.   * 功能:統計結果集中字段數 
  91.   * 參數:$result資源標識符 
  92.   * 說明:統計字段數 
  93.   ==================================================*/ 
  94.  function numfields($result) { 
  95.   return mysql_num_fields($result); 
  96.  } 
  97.  /*=================================================== 
  98.   * 方法:affectedrows 
  99.   * 功能:取得前一次mysql操作所影響的記錄行數 
  100.   * 參數:無 
  101.   * 說明:取得前一次mysql操作所影響的記錄行數 
  102.   ==================================================*/ 
  103.  function affectedrows() { 
  104.   return mysql_affected_rows($this->link); 
  105.  } 
  106.  /*=================================================== 
  107.   * 方法:version 
  108.   * 功能:取得mysql版本 
  109.   * 參數:無 
  110.   * 說明:取得當前數據庫服務器mysql的版本 
  111.   ==================================================*/ 
  112.  function version() { 
  113.   return mysql_get_server_info(); 
  114.  } 
  115.  /*=================================================== 
  116.   * 方法:insertid 
  117.   * 功能:取得上一步insert操作產生的id 
  118.   * 參數:無 
  119.   * 說明:取得上一步insert操作產生的自增字段id 
  120.   ==================================================*/ 
  121.  function insertid() { 
  122.   return mysql_insert_id($this->link); 
  123.  } 
  124.  
  125.  /*=================================================== 
  126.   * 方法:checksql 
  127.   * 功能:檢查sql語句 
  128.   * 參數:sql語句 
  129.   * 說明:關閉非永久數據庫連接 
  130.   ==================================================*/ 
  131.  function checksql($db_string$querytype = 'select') { 
  132.         $clean = ''
  133.         $old_pos = 0; 
  134.         $pos = - 1; 
  135.         //如果是普通查詢語句,直接過濾一些特殊語法 
  136.         if ($querytype == 'select') { 
  137.             $notallow1 = "[^0-9a-z@._-]{1,}(union|sleep|benchmark|load_file|outfile)[^0-9a-z@.-]{1,}"
  138.             //$notallow2 = "--|/*"; 
  139.             if (eregi ( $notallow1$db_string )) { 
  140.                 exit ( "<font size='5' color='red'>safe alert: request error step 1 !</font>" ); 
  141.             } 
  142.         } 
  143.         //完整的sql檢查 
  144.         while ( true ) { 
  145.             $pos = strpos ( $db_string''', $pos + 1 ); 
  146.             if ($pos === false) { 
  147.                 break
  148.             } 
  149.             $clean .= substr ( $db_string$old_pos$pos - $old_pos ); 
  150.             while ( true ) { 
  151.                 $pos1 = strpos ( $db_string''', $pos + 1 ); 
  152.                 $pos2 = strpos ( $db_string''$pos + 1 ); 
  153.                 if ($pos1 === false) { 
  154.                     break
  155.                 } elseif ($pos2 == false || $pos2 > $pos1) { 
  156.                     $pos = $pos1
  157.                     break
  158.                 } 
  159.                 $pos = $pos2 + 1; 
  160.             } 
  161.             $clean .= '$s$'
  162.             $old_pos = $pos + 1; 
  163.         } 
  164.         $clean .= substr ( $db_string$old_pos ); 
  165.         $clean = trim ( strtolower ( preg_replace ( array ('~s+~s' ), array (' ' ), $clean ) ) ); 
  166.         //老版本的mysql并不支持union,常用的程序里也不使用union,但是一些黑客使用它,所以檢查它 
  167.         if (strpos ( $clean'union' ) !== false && preg_match ( '~(^|[^a-z])union($|[^[a-z])~s'$clean ) != 0) { 
  168.             $fail = true; 
  169.         } 
  170.         //發布版本的程序可能比較少包括--,#這樣的注釋,但是黑客經常使用它們 
  171.         elseif (strpos ( $clean'/*' ) > 2 || strpos ( $clean'--' ) !== false || strpos ( $clean'#' ) !== false) { 
  172.             $fail = true; 
  173.         } 
  174.         //這些函數不會被使用,但是黑客會用它來操作文件,down掉數據庫 
  175.         elseif (strpos ( $clean'sleep' ) !== false && preg_match ( '~(^|[^a-z])sleep($|[^[a-z])~s'$clean ) != 0) { 
  176.             $fail = true; 
  177.         } elseif (strpos ( $clean'benchmark' ) !== false && preg_match ( '~(^|[^a-z])benchmark($|[^[a-z])~s'$clean ) != 0) { 
  178.             $fail = true; 
  179.         } elseif (strpos ( $clean'load_file' ) !== false && preg_match ( '~(^|[^a-z])load_file($|[^[a-z])~s'$clean ) != 0) { 
  180.             $fail = true; 
  181.         } elseif (strpos ( $clean'into outfile' ) !== false && preg_match ( '~(^|[^a-z])intos+outfile($|[^[a-z])~s'$clean ) != 0) { 
  182.             $fail = true; 
  183.         } 
  184.         //老版本的mysql不支持子查詢,我們的程序里可能也用得少,但是黑客可以使用它來查詢數據庫敏感信息 
  185.         elseif (preg_match ( '~([^)]*?select~s'$clean ) != 0) { 
  186.             $fail = true; 
  187.         } 
  188.         if (! emptyempty ( $fail )) { 
  189.             exit ( "<font size='5' color='red'>safe alert: request error step 2!</font>" ); 
  190.         } else { 
  191.             return $db_string
  192.         } 
  193.     } 
  194.  /*=================================================== 
  195.   * 方法:close 
  196.   * 功能:關閉連接 
  197.   * 參數:無 
  198.   * 說明:關閉非永久數據庫連接 
  199.   ==================================================*/ 
  200.  function close() { 
  201.   mysql_close($this->link); 
  202.  } 
  203.  /*=================================================== 
  204.   * 方法:error 
  205.   * 功能:提示錯誤 
  206.   * 參數:$err_msg 
  207.   * 說明:對給出的錯誤提示內容給予echo 
  208.   ==================================================*/ 
  209.  function error($err_msg = "") { 
  210.   if ($err_msg == "") { 
  211.    echo "errno:" . mysql_errno . "</br>"
  212.    echo "error:" . mysql_error . "</br>"
  213.   } else { 
  214.    echo $err_msg
  215.   } 
  216.  } 
  217.  /*=================================================== 
  218.   * 方法:__destruct 
  219.   * 功能:析構函數 
  220.   * 參數:無 
  221.   * 說明:釋放類,關閉連接 
  222.   ==================================================*/ 
  223.  function __destruct() { 
  224.   $this->close(); 
  225.  } 
  226. //數據庫連接函數 
  227. function conn_db(){ 
  228.  $link_db=new mysql(web_server,web_user,web_pwd,web_db,"utf8");//開源代碼Vevb.com 
  229.  return $link_db
  230. }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美成人网| 青青草一区二区| 夜夜嗨av一区二区三区四区| 亚洲欧洲成视频免费观看| 欧美日韩成人网| 91在线中文字幕| 久久久精品国产亚洲| 欧美亚洲视频一区二区| 亚洲一区二区免费在线| 国产日韩欧美电影在线观看| 久久精品91久久久久久再现| 日韩中文综合网| 亚洲视频在线看| 亚洲欧美日韩爽爽影院| 91高清视频在线免费观看| 亚洲精品电影网在线观看| 精品国内产的精品视频在线观看| 亚洲最大福利网| 精品中文字幕久久久久久| 欧美性猛交xxxx富婆| 久久久久成人精品| 在线观看日韩欧美| 精品久久久久久久久中文字幕| 欧美亚洲午夜视频在线观看| www.欧美精品一二三区| 97国产suv精品一区二区62| 欧美国产日韩中文字幕在线| 日韩视频免费在线| 欧美性猛交xxxxx免费看| 国产一区二区三区三区在线观看| 中日韩美女免费视频网站在线观看| 欧美小视频在线| 日韩欧美成人免费视频| 亚洲韩国欧洲国产日产av| 国外成人在线视频| 国产精品福利观看| 日韩欧美一区二区三区久久| 亚洲高清一二三区| 欧美一级高清免费播放| 欧美激情欧美狂野欧美精品| 日韩av在线不卡| 日韩精品中文字幕在线| 亚洲国产日韩欧美在线图片| 成人免费观看a| 欧美成人精品一区二区三区| 2024亚洲男人天堂| 九九热在线精品视频| 大量国产精品视频| 欧美国产日韩一区二区在线观看| 成人a级免费视频| 欧美国产视频一区二区| 欧美老肥婆性猛交视频| 欧美性xxxxx极品娇小| 国产免费观看久久黄| 国产在线精品一区免费香蕉| 国产精品久久视频| 国产精品久久久久7777婷婷| 日韩激情av在线播放| 91精品国产九九九久久久亚洲| 免费av在线一区| 久久成人在线视频| 日韩www在线| 久久99视频精品| 一区二区三区视频免费在线观看| 欧美日韩亚洲网| 77777少妇光屁股久久一区| 亚洲精品一区中文| 国产午夜精品麻豆| 亚洲精品视频在线播放| 91精品国产高清久久久久久| 午夜欧美不卡精品aaaaa| 久久电影一区二区| 97国产精品人人爽人人做| 91禁国产网站| 91欧美精品成人综合在线观看| 亚洲精品久久久久久久久久久久| 亚洲一区中文字幕| 国产亚洲欧洲在线| 久久精品久久精品亚洲人| 亚洲一级免费视频| 国产97在线亚洲| 夜夜嗨av色综合久久久综合网| 亚洲成人av资源网| 色综合影院在线| 国产一区二区三区中文| 亚洲天堂av电影| 欧美日韩激情美女| 日韩中文字幕在线视频| 精品国产精品自拍| 国产美女精彩久久| 日韩精品一区二区三区第95| 日韩成人中文电影| 亚洲天堂免费视频| 亚洲视频在线观看| 亚洲一区二区免费在线| 欧美影院久久久| 亚洲美女又黄又爽在线观看| 午夜精品福利在线观看| 国产精品r级在线| 欧美激情奇米色| 国产大片精品免费永久看nba| 成人在线免费观看视视频| 国产精欧美一区二区三区| 国产欧美精品久久久| 日韩av在线影视| 一区二区三区天堂av| 国产精品一区电影| 欧美性视频网站| 久久久精品2019中文字幕神马| 久久久女女女女999久久| 亚洲天堂av女优| 精品自在线视频| 91黑丝在线观看| 亚洲国产精品人久久电影| 亚洲图中文字幕| 国产精品美女999| 国产97在线|亚洲| 91色在线视频| 欧美大尺度电影在线观看| 亚洲欧洲在线免费| 亚洲精品一区二区三区不| 日韩在线精品视频| 欧美激情喷水视频| 亚洲成人性视频| 欧美日韩激情美女| 国产精品自产拍高潮在线观看| 日韩欧美在线视频| 欧美激情乱人伦| 亚洲成人久久久久| 最好看的2019年中文视频| 91禁国产网站| 国产成人精品久久| 久久久久这里只有精品| 91精品国产自产91精品| 国产精品白丝jk喷水视频一区| 中文字幕九色91在线| 亚洲精品视频免费在线观看| 欧美精品在线看| 亚洲美女视频网站| 欧美激情精品久久久久久大尺度| 日韩最新av在线| 久久久久久久久久亚洲| 人妖精品videosex性欧美| 国产精品久久久久久久av大片| 日韩中文字幕在线观看| 成人精品久久一区二区三区| 久久久亚洲网站| 色偷偷av一区二区三区乱| 国产偷国产偷亚洲清高网站| 97香蕉超级碰碰久久免费的优势| 一级做a爰片久久毛片美女图片| 97精品久久久中文字幕免费| 成人欧美一区二区三区在线| xvideos国产精品| 亚洲另类激情图| 精品国产91久久久久久| 国产视频丨精品|在线观看| 国产丝袜视频一区| 91探花福利精品国产自产在线| 日韩国产高清视频在线| 2025国产精品视频| 日韩亚洲在线观看| 久久乐国产精品| 欧美一区二区三区精品电影|