07
2013
01

一个简单的MySql连接操作类

 web开发无非就是对数据库的增,删,改,查。经常复制粘贴代码非常麻面,复制多了也浮澡了,就想有没有方法少复制点东西,于是就捣鼓了这个类,包括创建数据库连接和简单的一些数据库操作。代码如下,【说明:本文结尾处附有下载链接】

PHP代码
  1. <?php  
  2. /** 
  3.  * @author:谢焕进 
  4.  * @qq:415592250 
  5.  * @博客:http://thinkalways.net/z-blog/ 
  6.  */  
  7.   
  8. class mysql_conn_op{  
  9.     private $host="localhost";              //主机  
  10.     private $name="root";                   //数据库用户名  
  11.     private $password="";                   //数据库密码  
  12.     private $database="";                   //数据库名  
  13.       
  14.     private $conn='';                       //数据库连接  
  15.     private $rs='';                         //数据库结果集  
  16.     private $rowsResult='';                 //单条记录的字段数组  
  17.     private $rowsArray=array();             //结果数组  
  18.       
  19.     /** 
  20.      * @ 构造函数 
  21.      * @ 参数:$host,$name,$pwd,$db 
  22.      * @ 说明:参说为空时,使用默认值 
  23.      */  
  24.     function __construct($host,$name,$pwd,$db){  
  25.         if($host!=''){  
  26.             $this->host=$host;  
  27.         }  
  28.         if($name!=''){  
  29.             $this->name=$name;  
  30.         }  
  31.         if($pwd!=''){  
  32.             $this->password=$pwd;  
  33.         }  
  34.         if($db!=''){  
  35.             $this->database=$db;  
  36.         }  
  37.         $this->init_conn();  
  38.     }  
  39.       
  40.     /** 
  41.      * @功能:初始化连接 
  42.      * @说明:忽略错误 
  43.      */  
  44.     function init_conn(){  
  45.         $this->conn=@mysql_connect($this->host,$this->name,$this->password);  
  46.         @mysql_select_db($this->database,$this->conn);  
  47.         mysql_query("set names utf8");  
  48.     }  
  49.       
  50.     /** 
  51.      * @功能:执行查询操作,查询结果保存到成员变量rs中 
  52.      */  
  53.     function mysql_query_result($sql){  
  54.         $this->isConn();  
  55.         $this->rs=@mysql_query($sql,$this->conn);  
  56.     }  
  57.       
  58.     /** 
  59.      * @功能:判断记录条数 
  60.      * @说明:如果发生错误(比如sql语句写错鸟),也返回记录条数0. 
  61.      */  
  62.     function getRowsNum($sql){  
  63.         $this->isConn();  
  64.         $this->mysql_query_result($sql);  
  65.         if(mysql_errno()==0){  
  66.             return @mysql_num_rows($this->rs);  
  67.         }else{  
  68.             return 0;  
  69.         }  
  70.     }  
  71.       
  72.     /** 
  73.      * @功能:将查询结果以数组的形式返回 
  74.      * @说明:只返回一条记录 
  75.      */  
  76.     function getRowsResult($sql){  
  77.         $this->isConn();  
  78.         $this->mysql_query_result($sql);  
  79.         if(mysql_error()==0){  
  80.             $this->rowsResult=mysql_fetch_array($this->rs,MYSQL_ASSOC);  
  81.             return $this->rowsResult;  
  82.         }else{  
  83.             return '';  
  84.         }  
  85.     }  
  86.       
  87.     /** 
  88.      * @功能:将查询结果以二维数组形式返回 
  89.      * @说明:返回多条记录 
  90.      */  
  91.     function getRowsArray($sql){  
  92.         $this->mysql_query_result($sql);  
  93.         if(mysql_errno()==0){  
  94.             while($row=mysql_fetch_array($this->rs,MYSQL_ASSOC)){  
  95.                 $this->rowsArray[]=$row;  
  96.             }  
  97.             return $this->rowsArray;  
  98.         }else{  
  99.             return '';  
  100.         }  
  101.     }  
  102.   
  103.     /** 
  104.      * @功能:执行DML语句,即增,删,改操作 
  105.      * @return 成功返回true,失败返回false; 
  106.      */  
  107.     function executeDML($sql){  
  108.         $this->isConn();  
  109.         @mysql_query($sql);  
  110.         if(mysql_errno()==0){  
  111.             return true;  
  112.         }else{  
  113.             return false;  
  114.         }  
  115.     }  
  116.       
  117.     /** 
  118.      * @功能:执行增,删,改操作 
  119.      * @return 成功,返回受影响的记录条数 
  120.      * @说明:若执行出错,则返回0,表示没有记录受影响 
  121.      */  
  122.     function affectRowsNum($sql){  
  123.         $this->isConn();  
  124.         @mysql_query($sql);  
  125.         $this->rowsNum=@mysql_affected_rows();  
  126.         if(mysql_errno()==0){  
  127.             return $this->rowsNum;  
  128.         }else{  
  129.             return 0;  
  130.         }  
  131.     }  
  132.       
  133.     /** 
  134.      * @功能:判断数据库连接资源conn是否为空,若是,初始化一个连接。 
  135.      */  
  136.     function isConn(){  
  137.         if($this->conn==''){  
  138.             $this->init_conn();  
  139.         }  
  140.     }  
  141.       
  142.     /** 
  143.      * @功能:关闭结果集 
  144.      */  
  145.     function close_rst(){  
  146.         mysql_free_result($this->rs);  
  147.         $this->rowsResult='';  
  148.         $this->rowsArray='';      
  149.     }  
  150.       
  151.     /** 
  152.      * @功能:关闭连接 
  153.      * @说明:先关闭结果集,再关闭连接 
  154.      */  
  155.     function close_conn(){  
  156.         mysql_close($this->conn);  
  157.         $this->conn='';       
  158.     }  
  159. }  
  160. ?>  

然后编写对数据库操作的文件时,只要把该类导入进来,然后创建一个类实例

PHP代码
  1. <?php  
  2. //连接数据库  
  3.     require('thinkalways/database/database.php');  
  4.     $connobj=new mysql_conn_op('localhost','root','**********','db_test');//数据库实例  
  5.     //$connobj=new mysql_conn_op('','','','');  这4个参数,如果和上面类中默认的一致,可以这么的,留空就好。

然后通过这个类实例去调用类成员函数或者成员变量,即可操作数据库。

PHP代码
  1. case 'get_hot_content':  
  2.         $user_id=$_GET['user_id'];  
  3.         $get_url_sql="select * from dh_hot_content where user_id='".$user_id."'";  
  4.         $rowsResult=$connobj->getRowsArray($get_url_sql);  //调用getRowsArray($sql)函数
  5.         echo json_encode($rowsResult);  
  6.         $connobj->close_conn();  
  7.         break;  

当然这个类也只是对数据库的操作进行了一个简单的抽象,如果追求更高的扩展,还可以在此基础上进行更高的抽象,比如说抽象成兼容各种数据库等等。这里就简单的自己用,而且更好的抽象类,比如php5.0以后的版本自带了一个PDAO类,就非常的强大,所以就简单的学一个,嘻嘻,足够用就好。

类源码:201301071345436613.zip

« 上一篇下一篇 »

相关文章:

#学习笔记#php多线程  (2014-8-31 18:22:59)

CodeIgniter中get_post 方法需要注意的地方  (2014-2-2 22:55:3)

PHP中判断变量为空的几种方法  (2014-1-24 9:40:14)

mysql创建远程登入用户  (2014-1-12 21:42:50)

mysql修改默认字符集  (2014-1-1 11:19:17)

linux下修改mysql密码  (2013-8-5 22:10:0)

#学习笔记#php字符递增问题  (2013-6-4 10:10:47)

随便弄了个天气预报  (2013-3-24 2:23:12)

#学习笔记#php实现计划任务  (2012-11-23 21:2:27)

#学习笔记#php时间格式参数  (2012-11-20 9:24:22)