conn = mysql_connect($host, $user, $password); if (!$this->conn) { trigger_error("failed to connect to database: " . mysql_error()); return false; } if ($m[11]) { $ret = $this->select_db($m[11]); if (!$ret) trigger_error(mysql_error()); } return $this; } function select_db($database) { if ($this->db == $database) return; return mysql_select_db($this->db = $database, $this->conn); } function last_insert_id() { return mysql_insert_id($this->conn); } function query() { $args = func_get_args(); $stmt = array_shift($args); $params = preg_match_all('/(?conn); if (!$res) { trigger_error(mysql_error() . ", query: $stmt"); } return $res; } function simple_query($stmt) { $res = mysql_query($stmt, $this->conn); if (!$res) { trigger_error(mysql_error() . ", query: $stmt"); } return $res; } function get_assoc() { $args = func_get_args(); $res = call_user_func_array(array(&$this, "query"), $args); if (!$res) return false; return mysql_fetch_assoc($res); } function get_one() { $args = func_get_args(); $res = call_user_func_array(array(&$this, "query"), $args); if (!$res) return false; return (mysql_num_rows($res) > 0) ? mysql_result($res,0,0) : false; } function fetch_all_assoc() { $args = func_get_args(); $res = call_user_func_array(array(&$this, "query"), $args); if (!$res) return false; while ($results[] = mysql_fetch_assoc($res)) /* do nothing */; array_pop($results); return $results; } function fetch_all_concat() { $args = func_get_args(); $res = call_user_func_array(array(&$this, "query"), $args); if (!$res) return false; $rows = mysql_num_rows($res); if (!$rows) return array(); for ($num = 0; $num < $rows; $num++) $results[] = @mysql_result($res,$num,0); return $results; } function fetch_all_row() { $args = func_get_args(); $res = call_user_func_array(array(&$this, "query"), $args); if (!$res) return false; while ($results[] = mysql_fetch_row($res)) /* do nothing */; array_pop($results); return $results; } function get_enum_options($table, $field) { $ret = array(); $query = "SHOW COLUMNS FROM $table LIKE ?"; $res = call_user_func_array(array(&$this, "query"), array($query, $field)); if (!$res) return; $row = mysql_fetch_assoc($res); if (!$row) return; if (ereg('(enum|set).(.*).', $row['Type'], $match)) { $opts = explode(',', $match[2]); foreach ($opts as $item) { $ret[] = substr($item, 1, strlen($item)-2); } } return $ret; } }