每次操作MySQL数据库的时候,都要进行连接、选择数据库等重复的动作,何不将它封装成一个类呢?这样做就简单了。
也许你会说,写成函数就行了啊。不过,写成一个类就封装了数据库的一些信息,比如数据库名、数据库主机、数据库用户及密码等。这样,在某个需要操作MySQL的函数里,就不用传入这些信息,直接传入一个MySQL对象就可以了,是不是很方便?
很好,下面就是代码:
下载: http://down.qiannao.com/space/file/pgtimes/share/2011/3/8/mysqlobj.php/.page
db_name = $dn; $this->db_user = $du; $this->db_pawd = $dp; $this->db_host = $dh; $this->db_charset = $dc; $this->db_collate = $do; } /** 析构函数 */ function __destruct() { if($this->isCon) $this->closeCon(); } /** 创建连接,没有返回值 */ function newCon() { if(!$this->isCon) { $this->link = mysql_connect($this->db_host,$this->db_user,$this->db_pawd) or die("无法创建数据连接
".mysql_error()); mysql_query("SET NAMES {$this->db_charset}"); $this->isCon = true; } } /** 关闭连接,没有返回值 */ function closeCon() { if($this->isCon) { mysql_close($this->link); $this->isCon = false; } } /** 执行SQL命令,输入参数:SQL语句,返回值:执行结果 */ function execute($sql) { if(!$this->isCon) $this->newCon(); $db_selected = mysql_select_db($this->db_name,$this->link) or die("打开数据库失败
".mysql_error($this->link)); $result = mysql_query($sql, $this->link); return $result; } } ?>
亦可点我下载;
应如下创建一个MySQL对象
像如下使用:
newCon(); // 新建连接 $sql = "SELECT * FROM table"; // SQL语句 $result = $mysql->execute($sql); // 执行SQL查询,并返回结果 $mysql->closeCon(); // 关闭连接 ?>
一定要在下一个newCon()之前关闭连接!
所以,请每次执行SQL查询后,及时关闭连接(closeCon())!
由于每次创建MySQL对象都要传入数据库的一些信息,而我们写网站的时候这些信息基本不会变,所以我们可以写一个函数
把对MySQL数据库的操作、信息封装成一个类后,自然有很多的好处,这个好处,在我以后的这些文章里会有极大的体现。
转自:http://blog.abreto.net/oa/php-mysql-class