当前位置:Gxlcms > PHP教程 > 一个php的mysql操作类

一个php的mysql操作类

时间:2021-07-01 10:21:17 帮助过:19人阅读

  1. //数据库操作类

  2. class db
  3. {
  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(empty($str_array))
  25. {
  26. $str_array=array();
  27. }
  28. $this->db=$str_array;
  29. }
  30. //读取一条数据并把数据往后移一位,如果数据为空则返回为null;
  31. function Get_One()
  32. {
  33. $re=empty($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=empty($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(empty($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(!empty($f))
  81. {
  82. foreach($w as $key=>$vaule)
  83. {
  84. if(!is_numeric($key))
  85. {
  86. if(empty($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(!empty($f))
  118. {
  119. foreach($w as $key=>$vaule)
  120. {
  121. if(!is_numeric($key))
  122. {
  123. if(empty($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(empty($k_str))
  145. {
  146. $k_str=htmlspecialchars($key);
  147. $v_str="'".htmlspecialchars($vaule)."'";
  148. }else
  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. }
  159. ?>

人气教程排行