近阶段由于项目的需要写了个操作mysql的操作类: /* * $Id: db_mysql.class.php create by bruceLin $ * 一个用php写的操作mysql的类,调用方式,可以参考test.php文件,支持debug调试,在线使用时,关掉debug进行友好的提示,调试程序时,开启debug进行错误的准确提示,支持记录集的数组形式插入和修改 * 如果有什么bug,欢迎发邮件到hellollx@163.com */ if(!defined('DBCONFIG_ROOT')) define('DBCONFIG_ROOT','./config.inc.php'); class db_mysql { var $version = ''; var $querynum = 0; var $link = null; var $debug = false; function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $halt = TRUE, $dbcharset2 = '') { $func = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect'; if(!$this->link = @$func($dbhost, $dbuser, $dbpw, 1)) { $halt && $this->halt('Can not connect to MySQL server'); } else { if($this->version() > '4.1') { global $charset, $dbcharset; $dbcharset = $dbcharset2 ? $dbcharset2 : $dbcharset; $dbcharset = !$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8')) ? str_replace('-', '', $charset) : $dbcharset; $serverset = $dbcharset ? 'character_set_connection='.$dbcharset.', character_set_results='.$dbcharset.', character_set_client=binary' : ''; $serverset .= $this->version() > '5.0.1' ? ((empty($serverset) ? '' : ',').'sql_mode=/'/'') : ''; $serverset && mysql_query("SET $serverset", $this->link); } $dbname && @mysql_select_db($dbname, $this->link); } } function select_db($dbname) { return mysql_select_db($dbname, $this->link); } function fetch_array($query, $result_type = MYSQL_ASSOC) { return mysql_fetch_array($query, $result_type); } function fetch_first($sql) { return $this->fetch_array($this->query($sql)); } function result_first($sql) { return $this->result($this->query($sql), 0); } function qstr($cont) { define('IS_MAGIC_QUOTES', get_magic_quotes_runtime()); $cont = is_array($cont) ? $cont : (array)$cont; foreach($cont as $key => $val) { if(PHP_VERSION >= 4.3) { if(IS_MAGIC_QUOTES) $cont[$key] = stripslashes($val); } else { if(!IS_MAGIC_QUOTES) $cont[$key] = addslashes($val); } $cont[$key] = mysql_real_escape_string($cont[$key]); } return $cont; } function query($sql, $type = '') { if($this->debug == true) { $begintime = $this->get_time(); } $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query'; if(!($query = $func($sql, $this->link))) { if(in_array($this->errno(), array(2006, 2013)) && substr($type, 0, 5) != 'RETRY') { $this->close(); //sleep(1); require_once(DBCONFIG_ROOT); $this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, true, $dbcharset); $this->query($sql, 'RETRY'.$type); } elseif($type != 'SILENT' && substr($type, 5) != 'SILENT') { $this->halt('MySQL Query Error', $sql); } } if($this->debug == true) { $this->hrecho('time:'.($this->get_time() - $begintime).'s,sql:'.$sql); } $this->querynum++; return $query; } function affected_rows() { return mysql_affected_rows($this->link); } function error() { return (($this->link) ? mysql_error($this->link) : mysql_error()); } function errno() { return intval(($this->link) ? mysql_errno($this->link) : mysql_errno()); } function result($query, $row = 0) { $query = @mysql_result($query, $row); return $query; } function num_rows($query) { $query = mysql_num_rows($query); return $query; } function num_fields($query) { return mysql_num_fields($query); } function free_result($query) { return mysql_free_result($query); } function update_array($table, $where, $array) { $contents = $join1 = ''; foreach ( $array as $key => $val ) { $contents .= $join1."$key = '$val'"; $join1 = ","; } $sql = "UPDATE $table SET $contents WHERE $where"; return $this->query($sql); } function insert_array($table, $array) { $fields = $contents = $join1 = $join2 = ''; foreach ( $array as $key => $val ) { $fields .= $join1.$key; $contents .= $join2.$val; $join1 = ","; $join2 = "','"; } $sql = "INSERT INTO $table ({$fields}) values ('{$contents}')"; return $this->query($sql); } function insert_id() { return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); } function fetch_row($query) { $query = mysql_fetch_row($query); return $query; } function fetch_fields($query) { return mysql_fetch_field($query); } function version() { if(empty($this->version)) { $this->version = mysql_get_server_info($this->link); } return $this->version; } function close() { return mysql_close($this->link); } function halt($message = '', $sql = '') { if(!$this->debug) $this->hrecho($message, 0); else $this->hrecho('errno:'.$this->errno().',information:'.$this->error(), 0); } function get_time() { $time = explode(' ',microtime()); return (float)$time[1] + (float)$time[0]; } function hrecho($str, $hr=1 , $hit='') { echo "<font color=red>", empty($hit) ? '' : "$hit:", "$str</font>", !empty($hr) ? '<hr>' : '<br>'; } } 具体的程序文件地址:http://download.csdn.net/source/1370502 (里面有调用的程序,下载即可运行)