首页 > 语言 > PHP > 正文

PHP mysql数据库操作类

2024-09-04 11:44:13
字体:
来源:转载
供稿:网友

数据库操作类是所有程序都可以实现的一个功能,下面我来分享一个PHP mysql数据库操作类,这个数据库操作类的特点是对所有保存到数据库的内容进入了过滤,可以很好的处理sql注入了,代码如下:

  1. <?php 
  2. //数据库处理类 
  3. class db 
  4.     //SQL执行后的数据保存变量; 
  5.     var $db
  6.     //读取或设置当前数据的位置 
  7.     var $position=0; 
  8.     //执行SQL语句并把结果保存为db变量中; 
  9.     function sub_sql($str
  10.     { 
  11.         global $prefix;//全局函数,表前缀 
  12.         return str_replace("#@__",$prefix,$str); 
  13.     } 
  14.     function Sql($str
  15.     { 
  16.         $str=$this->sub_sql($str); 
  17.         $result = mysql_query($str); 
  18.         $i=0; 
  19.         while($row = mysql_fetch_array($result)) 
  20.         { 
  21.             $str_array[$i]=$row
  22.             $i++; 
  23.         } 
  24.         if(emptyempty($str_array)) 
  25.         { 
  26.             $str_array=array(); 
  27.         } 
  28.         $this->db=$str_array
  29.     } 
  30.     //读取一条数据并把数据往后移一位,如果数据为空则返回为null; 
  31.     function Get_One() 
  32.     { 
  33.         $re=emptyempty($this->db[$this->position])?null:$this->db[$this->position]; 
  34.         $this->position=$re?$this->position+1:$this->position; 
  35.         return $re
  36.     } 
  37.     //判断是否数据读取到结尾了 
  38.     function Judge() 
  39.     { 
  40.         $re=emptyempty($this->db[$this->position])?true:false; 
  41.         return $re
  42.     } 
  43.     //取得db里面的个数 
  44.     function Get_Num() 
  45.     { 
  46.         return count($this->db); 
  47.     } 
  48.     //更新数据库里面的数据,$t为表名,$v格式为数组格式,上标为字段名,下标为数据;$w为条件上标为字段名下标为数据,$p为条件0为等号,1为大于,-1为小于; 
  49.     function Set_Updata($t,$v,$w,$p=0) 
  50.     { 
  51.         $this->Sql($t); 
  52.         $v_str=""
  53.         $w_str=""
  54.         $f=""
  55.         foreach($v as $key=>$vaule
  56.         { 
  57.             if(!is_numeric($key)) 
  58.             { 
  59.                 if(emptyempty($v_str)) 
  60.                 { 
  61.                     $v_str=htmlspecialchars($key)."='".htmlspecialchars($vaule)."'"
  62.                 }else 
  63.                 { 
  64.                     $v_str=$v_str.",".htmlspecialchars($key)."='".htmlspecialchars($vaule)."'"
  65.                 } 
  66.             } 
  67.         } 
  68.         switch($p
  69.         { 
  70.             case 0: 
  71.                 $f="="
  72.                 break
  73.             case 1: 
  74.                 $f=">"
  75.                 break
  76.             case -1: 
  77.                 $f="<"
  78.                 break
  79.         } 
  80.         if(!emptyempty($f)) 
  81.         { 
  82.             foreach($w as $key=>$vaule
  83.             { 
  84.                 if(!is_numeric($key)) 
  85.                 { 
  86.                     if(emptyempty($v_str)) 
  87.                     { 
  88.                         $w_str=htmlspecialchars($key).$f.htmlspecialchars($vaule)."'"
  89.                     }else 
  90.                     { 
  91.                         $w_str=$w_str.",".htmlspecialchars($key).$f.htmlspecialchars($vaule)."'"
  92.                     } 
  93.                 } 
  94.             } 
  95.         } 
  96.         $sql="UPDATE ".$t." SET ".$v_str." where ".$w_str
  97.         return $result = mysql_query($sql); 
  98.     } 
  99.     //删除一数据$w为条件上标为字段名下标为数据,$p为条件0为等号,1为大于,-1为小于; 
  100.     function Set_Del($t,$w,$p=0) 
  101.     { 
  102.         $this->sub_sql($t); 
  103.         $w_str=""
  104.         $f=""
  105.         switch($p
  106.         { 
  107.             case 0: 
  108.                 $f="="
  109.                 break
  110.             case 1: 
  111.                 $f=">"
  112.                 break
  113.             case -1: 
  114.                 $f="<"
  115.                 break
  116.         } 
  117.         if(!emptyempty($f)) 
  118.         { 
  119.             foreach($w as $key=>$vaule
  120.             { 
  121.                 if(!is_numeric($key)) 
  122.                 { 
  123.                     if(emptyempty($v_str)) 
  124.                     { 
  125.                         $w_str=htmlspecialchars($key).$f.htmlspecialchars($vaule)."'"
  126.                     }else 
  127.                     { 
  128.                         $w_str=$w_str.",".htmlspecialchars($key).$f.htmlspecialchars($vaule)."'"
  129.                     } 
  130.                 } 
  131.             } 
  132.         } 
  133.         $str="DELETE FROM ".$t." WHERE ".$w_str
  134.         return $result = mysql_query($str); 
  135.     } 
  136.     function Add($t,$v
  137.     { 
  138.         $this->sub_sql($t); 
  139.         $k_str=""
  140.         $v_str=""
  141.         foreach($v as $key=>$vaule
  142.         { 
  143.             if(!is_numeric($key)){ 
  144.                 if(emptyempty($k_str)) 
  145.                 { 
  146.                     $k_str=htmlspecialchars($key); 
  147.                     $v_str="'".htmlspecialchars($vaule)."'"
  148.                 }else//开源代码Vevb.com 
  149.                 { 
  150.                     $k_str=$k_str.",".htmlspecialchars($key); 
  151.                     $v_str=$v_str.","."'".htmlspecialchars($vaule)."'"
  152.                 } 
  153.             } 
  154.         } 
  155.         $str="INSERT INTO ".$t."(".$k_str.")"."value(".$v_str.")"
  156.         return $result = mysql_query($str); 
  157.     } 
  158. ?>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表