php增删改查封装

php增删改查封装

首先创建一个名为“DB”的类;然后在“DB”类的构造方法中去连接数据库;再根据连接实例进行编写增删改查操作;最后将“DB”类进行实例化并设置为全局变量即可。

封装代码:

  1. <?php
  2. /**
  3. * 数据库配置信息
  4. */
  5. define('DB_HOST','127.0.0.1'); //服务器
  6. define('DB_USER','root'); //数据库用户名
  7. define('DB_PASSWORD','123456'); //数据库密码
  8. define('DB_NAME','TEST'); //默认数据库
  9. define('DB_CHARSET','utf8'); //数据库字符集
  10. define('TIMEZONE',"PRC"); //时区设置
  11. date_default_timezone_set(TIMEZONE);
  12. /**
  13. * 类名:DB
  14. * 说明:数据库操作类
  15. */
  16. class DB
  17. {
  18. public $host; //服务器
  19. public $conn; //数据库连接变量
  20. /**
  21. * DB类构造函数
  22. */
  23. public function DB($host=DB_HOST ,$username=DB_USER,$password=DB_PASSWORD,$db_name=DB_NAME)
  24. {
  25. $this->host = $host;
  26. $this->username = $username;
  27. $this->password = $password;
  28. $this->db_name = $db_name;
  29. $this->conn = mysql_connect($host,$username,$password) or die ('数据库连接失败!错误原因:'.mysql_error());
  30. mysql_select_db($db_name)or die('数据库选定失败!错误原因:'.mysql_error());
  31. mysql_query("SET CHARACTER SET utf8");
  32. }
  33. /**
  34. * 关闭数据连接
  35. */
  36. public function close()
  37. {
  38. mysql_close($this->conn);
  39. }
  40. /**
  41. * @description调用方法用
  42. * @param $sql
  43. * @return array
  44. */
  45. public function QueryAll($sql)
  46. {
  47. $this->open();
  48. $rs = mysql_query($sql,$this->conn);
  49. $objList = array();
  50. while($obj = mysql_fetch_object($rs))
  51. {
  52. if($obj)
  53. {
  54. $objList[] = $obj;
  55. }
  56. }
  57. $this->close();
  58. return $objList;
  59. }
  60. /**
  61. * description查询全部返回Json格式,通讯用
  62. * @param $sql
  63. * @return string
  64. */
  65. public function QueryAllJson($sql)
  66. {
  67. echo $sql;
  68. $this->open();
  69. $rs = mysql_query($sql,$this->conn);
  70. $objList = array();
  71. $i=0;
  72. while($obj = mysql_fetch_object($rs))
  73. {
  74. $objList[$i]=$obj;
  75. $i++;
  76. }
  77. $this->close();
  78. return json_encode(array("result"=>"success",'data'=>$objList));
  79. }
  80. /**
  81. * @description 插入数据到数据库中
  82. * @param $tableName 表名
  83. * @param array $columns 包含表中所有字段名的数组。默认空数组,则是全部有序字段名
  84. * @param array $values 包含对应所有字段的属性值的数组
  85. * @return int
  86. */
  87. public function insertData($tableName,$columns=array(),$values=array())
  88. {
  89. $sql = 'insert into '.$tableName .'( ';
  90. for($i = 0; $i < sizeof($columns);$i ++)
  91. {
  92. $sql .= $columns[$i];
  93. if($i < sizeof($columns) - 1)
  94. {
  95. $sql .= ',';
  96. }
  97. }
  98. $sql .= ') values ( ';
  99. for($i = 0; $i < sizeof($values);$i ++)
  100. {
  101. $sql .= "'".$values[$i]."'";
  102. if($i < sizeof($values) - 1)
  103. {
  104. $sql .= ',';
  105. }
  106. }
  107. $sql .= ' )';
  108. $this->open();
  109. mysql_query($sql,$this->conn);
  110. return true;
  111. // $id = mysql_insert_id($this->conn);//取得上一步操作产生的ID(2)
  112. // $this->close();(2)
  113. // return $id;//(2)
  114. }
  115. /**
  116. * 通过表中的某一属性获取数据
  117. */
  118. public function getDataByAtr($tableName,$atrName,$atrValue){
  119. @$data = $this->QueryAll("SELECT * FROM ".$tableName." WHERE $atrName = '$atrValue'");
  120. if(count($data)!=0)return $data;
  121. return NULL;
  122. }
  123. /**
  124. * description_
  125. * 通过表中的"id",删除记录
  126. */
  127. public function delete($tableName,$atrName,$atrValue){
  128. echo $tableName;
  129. $this->open();
  130. $deleteResult = false;
  131. if(mysql_query("DELETE FROM ".$tableName." WHERE $atrName = '$atrValue'")) $deleteResult = true;
  132. $this->close();
  133. if($deleteResult) return true;
  134. else return false;
  135. }
  136. /**
  137. * 更新表中的属性值
  138. */
  139. public function updateParamById($tableName,$atrName,$atrValue,$key,$value){
  140. $db = new DB();
  141. $db->open();
  142. if(mysql_query("UPDATE ".$tableName." SET $key = '$value' WHERE $atrName = '$atrValue' ")){ //$key不要单引号
  143. $db->close();
  144. return true;
  145. }
  146. else{
  147. $db->close();
  148. return false;
  149. }
  150. }
  151. /*
  152. * @description: 取得一个table的所有属性名
  153. * @param: $tbName 表名
  154. * @return:字符串数组
  155. */
  156. public function fieldName($tableName){
  157. $resultName=array();
  158. $i=0;
  159. $this->open();
  160. $result = mysql_query("SELECT * FROM ".$tableName);
  161. while ($property = mysql_fetch_field($result)){
  162. $resultName[$i++]=$property->name;
  163. }
  164. $this->close();
  165. return $resultName;
  166. }
  167. }