pconnect = $pconnect ; $this->dbserver = $dbserver ; $this->dbuser = $dbuser ; $this->dbpass = $dbpass ; $this->dbname = $dbname ; /* +------------------------------------------- + mySQL : Pconnect +------------------------------------------- */ if ($this->pconnect) { if (!@mysql_pconnect($this->dbserver,$this->dbuser,$this->dbpass)) { $this->sql_error('Can not Connect to mySQL'); } } /* +------------------------------------------- + mySQL : Connect +------------------------------------------- */ else { if (!@mysql_connect($this->dbserver,$this->dbuser,$this->dbpass)) { $this->sql_error('Can not Connect to mySQL'); } } /* +------------------------------------------- + mySQL : Check version +------------------------------------------- */ $this->version(); /* +------------------------------------------- + mySQL : Set charset! +------------------------------------------- */ if ($this->version > '4.1') { $this->dbchar = in_array($dbchar,array('gbk','utf8','big5')) ? $dbchar : 'utf8'; mysql_query("SET NAMES '".$this->dbchar."'"); } /* +------------------------------------------- + mySQL : SQL mode +------------------------------------------- */ if (mysql_get_server_info() > '5.0') { mysql_query("SET sql_mode=''"); } /* +------------------------------------------- + mySQL : SELECT database. +------------------------------------------- */ if (!mysql_SELECT_db($this->dbname)) { $this->sql_error('Can not SELECT database'); } } /* +----------------------------------------------- + mySQL : close mySQL link +----------------------------------------------- */ function close() { return mysql_close(); } /* +----------------------------------------------- + mySQL : Version +----------------------------------------------- */ function version() { $this->version = mysql_get_server_info(); } /* +----------------------------------------------- + mySQL : Query +----------------------------------------------- */ function query($sql,$force=0,$silent=0) { if ($force && function_exists('mysql_unbuffered_query')) { $query=mysql_unbuffered_query($sql); } else { $query=mysql_query($sql); } if (!$query) { if (strtoupper($this->dbchar) == 'BIG5') { $sql = str_replace("\'","'",$sql); $query = mysql_query($sql); if (!$query) { $this->sql_error('mySQL Query Error',$sql,$silent); } else { $this->querys++; } } else { $this->sql_error('mySQL Query Error',$sql,$silent); } } else { $this->querys++; } return $query; } /* +----------------------------------------------- + mySQL : Query result force to free +----------------------------------------------- */ function free($query) { return mysql_free_result($query); } /* +----------------------------------------------- + mySQL : Query ID +----------------------------------------------- */ function insert_id() { return mysql_insert_id(); } /* +----------------------------------------------- + mySQL : SELECT nums FROM server +----------------------------------------------- */ function num($query) { return mysql_num_rows($query); } /* +----------------------------------------------- + mySQL : Get array data +----------------------------------------------- */ function row($query,$sql_type=MYSQL_ASSOC) { return mysql_fetch_array($query,$sql_type); } function fetch_row($query) { return mysql_fetch_row($query); } function fetch_one_array($query) { $result = $this->query($query); $record = $this->row($result); return $record; } function fetch_one_field($query) { $result = $this->query($query); $record = $this->row($result); foreach($record as $val){ return $val; } } function result($query, $row) { $query = mysql_result($query, $row); return $query; } function affect() { return mysql_affected_rows(); } function select_db($dbname) { return mysql_select_db($dbname); } /* +----------------------------------------------- + mySQL : Class mysql backup +----------------------------------------------- */ function escape($string) { return trim(mysql_escape_string($string)); } function num_fields($query) { return mysql_num_fields($query); } function free_result($query) { return mysql_free_result($query); } /* +----------------------------------------------- + mySQL : Class Error info +----------------------------------------------- */ function error() { return mysql_error(); } function errno() { return mysql_errno(); } /* +----------------------------------------------- + mySQL : Class Error info output +----------------------------------------------- */ function sql_error($message = '', $sql = '', $silent = 0) { global $php_self,$timestamp,$onlineip; if ($sql) { @$fp = fopen(_ROOT.'cache/log/dberrorlog.php', 'a'); @fwrite($fp, "\t$timestamp\t$onlineip\t".basename($php_self)."\t".htmlspecialchars($this->errno())."\t".str_replace(array("\r", "\n", "\t"), array(' ', ' ', ' '), trim(htmlspecialchars($sql)))."\n"); @fclose($fp); } if (! defined ( 'IN_SQL_SILENT' )) { $html = ''; $html .= '