php的Mysql数据库连接类

来源:互联网 发布:泰牛程序员学费多少 编辑:程序博客网 时间:2024/05/27 03:27
<?php
/** * mysql数据库连接类 */class Mysql{private $db_host; //数据库主机private $db_user; //数据库用户名private $db_pwd; //数据库密码private $db_database; //数据库名private $conn; //数据库连接标识;private $sql; //sql执行的语句private $result; //query的资源标识符private $coding; //数据库编码,gbk,utf8,gb2312private $show_error = true; //本地调试使用,打印错误/*** 构造函数** @access public* @parameter string $db_host   数据库主机* @parameter string $db_user   数据库用户名* @parameter string $db_pwd    数据库密码* @parameter string $db_database   数据库名* @parameter string $coding    编码* @return void*/public function __construct($db_host, $db_user, $db_pwd, $db_database, $coding){$this->db_host = $db_host;$this->db_user = $db_user;$this->db_pwd =  $db_pwd;$this->db_database = $db_database;$this->coding = $coding;$this->connect();}/*** 链接数据库** @access private* @return void*/private function connect(){$this->conn = @mysql_connect($this->db_host,$this->db_user,$this->db_pwd);if(!$this->conn){//show_error开启时,打印错误if($this->show_error){$this->show_error('错误提示:链接数据库失败!');}}if(!@mysql_select_db($this->db_database, $this->conn)){//打开数据库失败if($this->show_error){$this->show_error('错误提示:打开数据库失败!');}}if(!@mysql_query("set names $this->coding")){//设置编码失败if($this->show_error){$this->show_error('错误提示:设置编码失败!');}}}/*** 可执行查询添加修改删除等任何sql语句** @access public* @parameter string $sql   sql语句* @return resource  资源标识符*/public function query($sql){$this->sql = $sql;$result = mysql_query($this->sql, $this->conn);if(!$result){//query执行失败,打印错误$this->show_error("错误的sql语句:", $this->sql);}else{//返回资源标识符return $this->result = $result;}}/*** 查询mysql服务器中所有的数据库** @access public* @return void*/public function show_databases(){$this->query("show databases");//打印数据库的总数echo "现有数据库:" . mysql_num_rows($this->result);echo "<br />";$i = 1;//循环输出每个数据库的名称while($row=mysql_fetch_array($this->result)){echo "$i $row[Database]" . "<br />";$i++;}}//以数组形式返回主机中所有数据库名 public function databases() {$rsPtr = @mysql_list_dbs($this->conn);$i = 0;$cnt = mysql_num_rows($rsPtr);while ($i < $cnt) {$rs[] = mysql_db_name($rsPtr, $i);$i++;}return $rs;}/*** 查询数据库下所有表名** @access public* @return void*/public function show_tables(){$this->query("show tables");//打印表的总数echo "数据库{$this->db_database}共有" . mysql_num_rows($this->result) . "张表:";echo "<br />";//构造数组下标,循环出数据库所有表名$column_name = "Tables_in_" . $this->db_database;$i = 1;//循环输出每个表的名称while($row=mysql_fetch_array($this->result)){echo "$i $row[$column_name]" . "<br />";$i++;}}/*** 取得记录集,获取数组-索引和关联** @access public* @return void*/public function fetch_array(){return mysql_fetch_array($this->result);}//获取关联数组,使用$row['字段名'] public function fetch_assoc() {return mysql_fetch_assoc($this->result);}//获取数字索引数组,使用$row[0],$row[1],$row[2] public function fetch_row() {return mysql_fetch_row($this->result);}//获取对象数组,使用$row->content public function fetch_Object() {return mysql_fetch_object($this->result);}/*** 简化select查询语句** @access public* @parameter string $table  表名* @parameter string $field  字段名* @return resource*/public function findall($table, $field = '*') {return $this->query("select $field from $table");}//简化查询select public function select($table, $columnName = "*", $condition = '', $debug = '') {$condition = $condition ? ' Where ' . $condition : NULL;if ($debug) {echo "SELECT $columnName FROM $table $condition";} else {return $this->query("SELECT $columnName FROM $table $condition");}}/*** 简化delete查询语句** @access public* @parameter string $table    表名* @parameter string $condition  查询的条件* @return resource*/public function delete($table, $condition) {return $this->query("delete from $table where $condition");}/*** 简化insert插入语句** @access public* @parameter string $table  表名* @parameter string $field  字段名* @parameter string $value  插入值* @return resource*/public function insert($table, $field, $value) {return $this->query("insert into $table ($field) values ('$value')");}/*** 简化update插入语句** @access public* @parameter string $table      表名* @parameter string $update_content  更新的内容* @parameter string $condition    条件* @return resource*/public function update($table, $update_content, $condition) {return $this->query("update $table set $update_content where $condition");}/*** 取得上一步 insert 操作产生的 id** @access public* @return integer*/public function insert_id() {return mysql_insert_id();}/*** 计算结果集条数** @access public* @return integer*/public function num_rows() {return mysql_num_rows($this->result);}/*** 查询字段数量和字段信息** @access public* @parameter string $table  表名* @return void*/public function num_fields($table) {$this->query("select * from $table");echo "<br />";//打印字段数echo "字段数:" . $total = mysql_num_fields($this->result);echo "<pre>";//mysql_fetch_field() 函数从结果集中取得列信息并作为对象返回。for ($i = 0; $i < $total; $i++) {print_r(mysql_fetch_field($this->result, $i));}echo "</pre>";echo "<br />";}/*** 输出sql语句错误信息** @access public* @parameter string $message 提示信息* @return void*/public function show_error($message='',$sql=''){echo "<fieldset>";echo "<legend>错误信息提示:</legend><br />";echo "<div style='font-size:14px; clear:both; font-family:verdana, arial, helvetica, sans-serif;'>";//打印错误原因echo "错误原因:" . mysql_error() . "<br /><br />";//打印错误信息//mysql_error() 函数返回上一个 mysql 操作产生的文本错误信息。echo "<div style='height:20px; background:#ff0000; border:1px #ff0000 solid'>";echo "<font color='white'>" . $message . "</font>";echo "</div>";//打印错误sql语句echo "<font color='red'><pre>" . $sql . "</pre></font>";echo "</div>";echo "</fieldset>";}}

0 0