conn = mysql_connect($dbhost . ":" . $dbport, $dbuser, $dbpw);
if ($this->conn == null || !$this->conn) {
$this->halt("Connect to MySQL failed");
}
$serverinfo = mysql_get_server_info($this->conn);
if ($serverinfo > '4.1' && $GLOBALS['charset']) {
mysql_query("SET character_set_connection=" . $GLOBALS['charset'] . ",character_set_results=" . $GLOBALS['charset'] . ",character_set_client=binary", $this->conn);
}
if ($serverinfo > '5.0') {
mysql_query("SET sql_mode=''", $this->conn);
}
if ($dbname && !@mysql_select_db($dbname, $this->conn)) {
$this->halt('Cannot use database');
}
}
function select_db($dbname) {
if (!@mysql_select_db($dbname, $this->conn)) {
$this->halt('Cannot use database');
}
}
function server_info() {
return mysql_get_server_info($this->conn);
}
function insert_id() {
$arr = $this->fetch_array('SELECT LAST_INSERT_ID() as id');
return $arr["id"];
}
function get_value($SQL, $offset = 0, $field = 0) {
$rt = $this->fetch_result($SQL);
if (isset($rt[$offset][$field])) {
return $rt[$offset][$field];
}
return false;
}
function query($SQL, $method = null, $error = true) {
$query = mysql_query($SQL, $this->conn);
!$query && $error && $this->halt('Query Error: ' . $SQL);
return $query;
}
function fetch_row($SQL) {
return $this->fetch_result($SQL, MYSQL_NUM);
}
function fetch_array($SQL) {
return $this->fetch_result($SQL, MYSQL_ASSOC);
}
function fetch_result($SQL, $result_type = MYSQL_BOTH) {
$arr = array();
$query = $this->query($SQL);
while ($data = mysql_fetch_array($query, $result_type)) {
$arr[] = $data;
}
$this->free_result();
return $arr;
}
function affected_rows() {
return mysql_affected_rows($this->conn);
}
function num_rows($SQL) {
$query = $this->query($SQL);
if (!is_bool($query)) {
return mysql_num_rows($query);
}
return 0;
}
function num_fields($SQL) {
$query = $this->query($SQL);
return mysql_num_fields($query);
}
function escape_string($str) {
return mysql_escape_string($str);
}
function free_result() {
$void = func_get_args();
foreach ($void as $query) {
if (is_resource($query) && get_resource_type($query) === 'mysql result') {
mysql_free_result($query);
}
}
unset($void);
}
function close() {
$this->free_result();
return @mysql_close($this->conn);
}
function halt($msg = null) {
exit($msg . '
' . $sql . '
' . mysql_error());
}
}