php连接mysql数据库操作类

这是一款比较全的mysql操作类,昨天写了一个简单的连接mysql数据库代码,相对于这个来说,那个是最简单的了,这个是一款包括数据查询,更新,删除,等操作,实例代码如下:

  1. class mysql{
  2. private $db_host; //数据库主机
  3. private $db_user; //数据库用户名
  4. private $db_pwd; //数据库密码
  5. private $db_database; //数据库名
  6. private $conn; //数据库连接标识;
  7. private $sql; //sql执行的语句
  8. private $result; //query的资源标识符
  9. private $coding; //数据库编码,gbk,utf8,gb2312
  10. private $show_error = true; //本地调试使用,打印错误
  11. /**
  12. * 构造函数
  13. *
  14. * @access public
  15. * @parameter string $db_host 数据库主机
  16. * @parameter string $db_user 数据库用户名
  17. * @parameter string $db_pwd 数据库密码
  18. * @parameter string $db_database 数据库名
  19. * @parameter string $coding 编码
  20. * @return void
  21. */
  22. public function __construct($db_host, $db_user, $db_pwd, $db_database, $coding){
  23. $this->db_host = $db_host;
  24. $this->db_user = $db_user;
  25. $this->db_pwd = $db_pwd;
  26. $this->db_database = $db_database;
  27. $this->coding = $coding;
  28. $this->connect();
  29. }
  30. /**
  31. * 链接数据库
  32. *
  33. * @access private
  34. * @return void
  35. */
  36. private function connect(){
  37. $this->conn = @mysql_connect($this->db_host,$this->db_user,$this->db_pwd);
  38. if(!$this->conn){
  39. //show_error开启时,打印错误
  40. if($this->show_error){
  41. $this->show_error('错误提示:链接数据库失败!');
  42. }
  43. }
  44. if(!@mysql_select_db($this->db_database, $this->conn)){
  45. //打开数据库失败
  46. if($this->show_error){
  47. $this->show_error('错误提示:打开数据库失败!');
  48. }
  49. }
  50. if(!@mysql_query("set names $this->coding")){
  51. //设置编码失败
  52. if($this->show_error){
  53. $this->show_error('错误提示:设置编码失败!');
  54. }
  55. }
  56. }
  57. /**
  58. * 可执行查询添加修改删除等任何sql语句
  59. *
  60. * @access public
  61. * @parameter string $sql sql语句
  62. * @return resource 资源标识符
  63. */
  64. public function query($sql){
  65. $this->sql = $sql;
  66. $result = mysql_query($this->sql, $this->conn);
  67. if(!$result){
  68. //query执行失败,打印错误
  69. $this->show_error("错误的sql语句:", $this->sql);
  70. }else{
  71. //返回资源标识符
  72. return $this->result = $result;
  73. }
  74. }
  75. /**
  76. * 查询mysql服务器中所有的数据库
  77. *
  78. * @access public
  79. * @return void
  80. */
  81. public function show_databases(){
  82. $this->query("show databases");
  83. //打印数据库的总数
  84. echo "现有数据库:" . mysql_num_rows($this->result);
  85. echo "<br />";
  86. $i = 1;
  87. //循环输出每个数据库的名称
  88. while($row=mysql_fetch_array($this->result)){
  89. echo "$i $row[database]" . "<br />";
  90. $i++;
  91. }
  92. }
  93. /**
  94. * 查询数据库下所有表名
  95. *
  96. * @access public
  97. * @return void
  98. */
  99. public function show_tables(){
  100. $this->query("show tables");
  101. //打印表的总数
  102. echo "数据库{$this->db_database}共有" . mysql_num_rows($this->result) . "张表:";
  103. echo "<br />";
  104. //构造数组下标,循环出数据库所有表名
  105. $column_name = "tables_in_" . $this->db_database;
  106. $i = 1;
  107. //循环输出每个表的名称
  108. while($row=mysql_fetch_array($this->result)){
  109. echo "$i $row[$column_name]" . "<br />";
  110. $i++;
  111. }
  112. }
  113. /**
  114. * 取得记录集,获取数组-索引和关联
  115. *
  116. * @access public
  117. * @return void
  118. */
  119. public function fetch_array(){
  120. return mysql_fetch_array($this->result);
  121. }
  122. /**
  123. * 简化select查询语句
  124. *
  125. * @access public
  126. * @parameter string $table 表名
  127. * @parameter string $field 字段名
  128. * @return resource
  129. */
  130. public function findall($table, $field = '*') {
  131. return $this->query("select $field from $table");
  132. }
  133. /**
  134. * 简化delete查询语句
  135. *
  136. * @access public
  137. * @parameter string $table 表名
  138. * @parameter string $condition 查询的条件
  139. * @return resource
  140. */
  141. public function delete($table, $condition) {
  142. return $this->query("delete from $table where $condition");
  143. }
  144. /**
  145. * 简化insert插入语句
  146. *
  147. * @access public
  148. * @parameter string $table 表名
  149. * @parameter string $field 字段名
  150. * @parameter string $value 插入值
  151. * @return resource
  152. */
  153. public function insert($table, $field, $value) {
  154. return $this->query("insert into $table ($field) values ('$value')");
  155. }
  156. /**
  157. * 简化update插入语句
  158. *
  159. * @access public
  160. * @parameter string $table 表名
  161. * @parameter string $update_content 更新的内容
  162. * @parameter string $condition 条件
  163. * @return resource
  164. */
  165. public function update($table, $update_content, $condition) {
  166. return $this->query("update $table set $update_content where $condition");
  167. }
  168. /**
  169. * 取得上一步 insert 操作产生的 id
  170. *
  171. * @access public
  172. * @return integer
  173. */
  174. public function insert_id() {
  175. return mysql_insert_id();
  176. }
  177. /**
  178. * 计算结果集条数
  179. *
  180. * @access public
  181. * @return integer
  182. */
  183. public function num_rows() {
  184. return mysql_num_rows($this->result);
  185. }
  186. /**
  187. * 查询字段数量和字段信息
  188. *
  189. * @access public
  190. * @parameter string $table 表名
  191. * @return void
  192. */
  193. public function num_fields($table) {
  194. $this->query("select * from $table");
  195. echo "<br />";
  196. //打印字段数
  197. echo "字段数:" . $total = mysql_num_fields($this->result);
  198. echo "<pre>";
  199. //mysql_fetch_field() 函数从结果集中取得列信息并作为对象返回。
  200. for ($i = 0; $i < $total; $i++) {
  201. print_r(mysql_fetch_field($this->result, $i));
  202. }
  203. echo "</pre>";
  204. echo "<br />";
  205. }
  206. /**
  207. * 输出sql语句错误信息
  208. *
  209. * @access public
  210. * @parameter string $message 提示信息
  211. * @return void
  212. */
  213. public function show_error($message='',$sql=''){
  214. echo "<fieldset>";
  215. echo "<legend>错误信息提示:</legend><br />";
  216. echo "<div >";
  217. //打印错误原因
  218. echo "错误原因:" . mysql_error() . "<br /><br />";
  219. //打印错误信息
  220. //mysql_error() 函数返回上一个 mysql 操作产生的文本错误信息。
  221. echo "<div >";
  222. echo "<font color='white'>" . $message . "</font>";
  223. echo "</div>";
  224. //打印错误sql语句
  225. echo "<font color='red'><pre>" . $sql . "</pre></font>";
  226. echo "</div>";//开源代码phpfensi.com
  227. echo "</fieldset>";
  228. }
  229. }
  230. //使用方法
  231. $mysql = new mysql($dbhost, $dbuser, $dbpwd, $dbname, $coding);