设计目标:
1,该类一实例化,就可以自动连接上mysql数据库;
2,该类可以单独去设定要使用的连接编码(set names XXX)
3,该类可以单独去设定要使用的数据库(use XXX);
4,可以主动关闭连接;
<?php /* 设计一个类:mysql数据库操作类 设计目标: 1,该类一实例化,就可以自动连接上mysql数据库; 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX); 4,可以主动关闭连接; */ class MySqlDB{ // 链接资源 private $link = null; // 构造方法 function __construct($host='localhost', $port=3306, $user='root', $pwd='', $charset='utf8', $dbName='mysql'){ $this->link = @mysql_connect("$host:$port", $user, $pwd); // @:阻止警告输出 mysql_query("set names $charset"); // 设置编码 mysql_query("use $dbName"); // 设置使用的数据库 } // 可设置链接编码 function setCharset($charset){ mysql_query("set names $charset"); } // 可设置使用的数据库 function selectDB($dbName){ mysql_query("use $dbName"); } // 可关闭链接 function closeDB(){ mysql_close($this->link); } } # ************************* 测试 ************************* $host = 'localhost'; $port = 3306; $user = 'root'; $pwd = '123456'; $charset = 'utf8'; $dbname = 'db1'; $db = new MySqlDB($host, $port, $user, $pwd, $charset, $dbname); // 测试是否链接成功 $set = mysql_query("select * from student"); var_dump($set); echo "<br>"; // 测试修改编码 $db->setCharset('gbk'); //********** 显示数据 ********** echo "<table border='1'>"; echo "<tr>"; // 获得列数 $field_count = mysql_num_fields($set); for($i=0; $i<$field_count; $i++){ // 获得第 i 列的名称 $field_name = mysql_field_name($set, $i); echo "<td>". $field_name . "</td>"; } echo "</tr>"; // 遍历每一行记录 while($rec = mysql_fetch_array($set)){ echo "<tr>"; for($i=0; $i<$field_count; $i++){ // 获取列名 $field_name = mysql_field_name($set, $i); // 获取该记录,改行的数据 echo "<td>" . $rec[$field_name] . "</td>"; } echo "</tr>"; } echo "</table>"; // ********* end ********** // 测试关闭链接 $db->closeDB(); $set = @mysql_query("select * from student"); var_dump($set); echo "<br>"; ?>