db\_host = $db\_host;
$this->db\_user = $db\_user;
$this->db\_pwd = $db\_pwd;
$this->db\_database = $db\_database;
$this->conn = $conn;
$this->coding = $coding;
$this->connect();
}
/\*数据库连接\*/
public function connect() {
if ($this->conn == "pconn") {
//永久链接
$this->conn = mysql\_pconnect($this->db\_host, $this->db\_user, $this->db\_pwd);
} else {
//即使链接
$this->conn = mysql\_connect($this->db\_host, $this->db\_user, $this->db\_pwd);
}
if (!mysql\_select\_db($this->db\_database, $this->conn)) {
if ($this->show\_error) {
$this->show\_error("数据库不可用:", $this->db\_database);
}
}
mysql\_query("SET NAMES $this->coding");
}
/\*数据库执行语句,可执行查询添加修改删除等任何sql语句\*/
public function query($sql) {
if ($sql == "") {
$this->show\_error("SQL语句错误:", "SQL查询语句为空");
}
$this->sql = $sql;
$result = mysql\_query($this->sql, $this->conn);
if (!$result) {
//调试中使用,sql语句出错时会自动打印出来
if ($this->show\_error) {
$this->show\_error("错误SQL语句:", $this->sql);
}
} else {
$this->result = $result;
}
return $this->result;
}
/\*创建添加新的数据库\*/
public function create\_database($database\_name) {
$database = $database\_name;
$sqlDatabase = 'create database ' . $database;
$this->query($sqlDatabase);
}
/\*查询服务器所有数据库\*/
//将系统数据库与用户数据库分开,更直观的显示?
public function show\_databases() {
$this->query("show databases");
echo "现有数据库:" . $amount = $this->db\_num\_rows($rs);
echo "
"; $i = 1; while ($row = $this->fetch\_array($rs)) { echo "$i $row\[Database\]"; echo "
"; $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; } /\*查询数据库下所有的表\*/ public function show\_tables($database\_name) { $this->query("show tables"); echo "现有数据库:" . $amount = $this->db\_num\_rows($rs); echo "
"; $i = 1; while ($row = $this->fetch\_array($rs)) { $columnName = "Tables\_in\_" . $database\_name; echo "$i $row\[$columnName\]"; echo "
"; $i++; } } /\* mysql\_fetch\_row() array $row\[0\],$row\[1\],$row\[2\] mysql\_fetch\_array() array $row\[0\] 或 $row\[id\] mysql\_fetch\_assoc() array 用$row->content 字段大小写敏感 mysql\_fetch\_object() object 用$row\[id\],$row\[content\] 字段大小写敏感 \*/ /\*取得结果数据\*/ public function mysql\_result\_li() { return mysql\_result($str); } /\*取得记录集,获取数组-索引和关联,使用$row\['content'\] \*/ public function fetch\_array($resultt="") { if($resultt<>""){ return mysql\_fetch\_array($resultt); }else{ 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 public function findall($table) { $this->query("SELECT \* FROM $table"); } //简化查询select public function select($table, $columnName = "\*", $condition = '', $debug = '') { $condition = $condition ? ' Where ' . $condition : NULL; if ($debug) { echo "SELECT $columnName FROM $table $condition"; } else { $this->query("SELECT $columnName FROM $table $condition"); } } //简化删除del public function delete($table, $condition, $url = '') { if ($this->query("DELETE FROM $table WHERE $condition")) { if (!empty ($url)) $this->Get\_admin\_msg($url, '删除成功!'); } } //简化插入insert public function insert($table, $columnName, $value, $url = '') { if ($this->query("INSERT INTO $table ($columnName) VALUES ($value)")) { if (!empty ($url)) $this->Get\_admin\_msg($url, '添加成功!'); } } //简化修改update public function update($table, $mod\_content, $condition, $url = '') { //echo "UPDATE $table SET $mod\_content WHERE $condition"; exit(); if ($this->query("UPDATE $table SET $mod\_content WHERE $condition")) { if (!empty ($url)) $this->Get\_admin\_msg($url); } } /\*取得上一步 INSERT 操作产生的 ID\*/ public function insert\_id() { return mysql\_insert\_id(); } //指向确定的一条数据记录 public function db\_data\_seek($id) { if ($id > 0) { $id = $id -1; } if (!@ mysql\_data\_seek($this->result, $id)) { $this->show\_error("SQL语句有误:", "指定的数据为空"); } return $this->result; } // 根据select查询结果计算结果集条数 public function db\_num\_rows() { if ($this->result == null) { if ($this->show\_error) { $this->show\_error("SQL语句错误", "暂时为空,没有任何内容!"); } } else { return mysql\_num\_rows($this->result); } } // 根据insert,update,delete执行结果取得影响行数 public function db\_affected\_rows() { return mysql\_affected\_rows(); } //输出显示sql语句 public function show\_error($message = "", $sql = "") { if (!$sql) { echo "" . $message . ""; echo "
"; } else { echo ""; echo "
"; } //释放结果集 public function free() { @ mysql\_free\_result($this->result); } //数据库选择 public function select\_db($db\_database) { return mysql\_select\_db($db\_database); } //查询字段数量 public function num\_fields($table\_name) { //return mysql\_num\_fields($this->result); $this->query("select \* from $table\_name"); echo "
"; echo "字段数:" . $total = mysql\_num\_fields($this->result); echo "
"; } //取得 MySQL 服务器信息 public function mysql\_server($num = '') { switch ($num) { case 1 : return mysql\_get\_server\_info(); //MySQL 服务器信息 break; case 2 : return mysql\_get\_host\_info(); //取得 MySQL 主机信息 break; case 3 : return mysql\_get\_client\_info(); //取得 MySQL 客户端信息 break; case 4 : return mysql\_get\_proto\_info(); //取得 MySQL 协议信息 break; default : return mysql\_get\_client\_info(); //默认取得mysql版本信息 } } //析构函数,自动关闭数据库,垃圾回收机制 public function \_\_destruct() { if (!empty ($this->result)) { $this->free(); } mysql\_close($this->conn); } //function \_\_destruct(); /\*获得客户端真实的IP地址\*/ function getip() { if (getenv("HTTP\_CLIENT\_IP") && strcasecmp(getenv("HTTP\_CLIENT\_IP"), "unknown")) { $ip = getenv("HTTP\_CLIENT\_IP"); } else if (getenv("HTTP\_X\_FORWARDED\_FOR") && strcasecmp(getenv("HTTP\_X\_FORWARDED\_FOR"), "unknown")) { $ip = getenv("HTTP\_X\_FORWARDED\_FOR"); } else if (getenv("REMOTE\_ADDR") && strcasecmp(getenv("REMOTE\_ADDR"), "unknown")) { $ip = getenv("REMOTE\_ADDR"); } else if (isset ($\_SERVER\['REMOTE\_ADDR'\]) && $\_SERVER\['REMOTE\_ADDR'\] && strcasecmp($\_SERVER\['REMOTE\_ADDR'\], "unknown")) { $ip = $\_SERVER\['REMOTE\_ADDR'\]; } else { $ip = "unknown"; } return ($ip); } function inject\_check($sql\_str) { //防止注入 $check = eregi('select|insert|update|delete|\\'|\\/\\\*|\\\*|\\.\\.\\/|\\.\\/|union|into|load\_file|outfile', $sql\_str); if ($check) { echo "输入非法注入内容!"; exit (); } else { return $sql\_str; } } function checkurl() { //检查来路 if (preg\_replace("/https?:\\/\\/(\[^\\:\\/\]+).\*/i", "\\\\1", $\_SERVER\['HTTP\_REFERER'\]) !== preg\_replace("/(\[^\\:\]+).\*/", "\\\\1", $\_SERVER\['HTTP\_HOST'\])) { header("Location: http://www.dareng.com"); exit(); } } } ?>
"; $i = 1; while ($row = $this->fetch\_array($rs)) { echo "$i $row\[Database\]"; echo "
"; $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; } /\*查询数据库下所有的表\*/ public function show\_tables($database\_name) { $this->query("show tables"); echo "现有数据库:" . $amount = $this->db\_num\_rows($rs); echo "
"; $i = 1; while ($row = $this->fetch\_array($rs)) { $columnName = "Tables\_in\_" . $database\_name; echo "$i $row\[$columnName\]"; echo "
"; $i++; } } /\* mysql\_fetch\_row() array $row\[0\],$row\[1\],$row\[2\] mysql\_fetch\_array() array $row\[0\] 或 $row\[id\] mysql\_fetch\_assoc() array 用$row->content 字段大小写敏感 mysql\_fetch\_object() object 用$row\[id\],$row\[content\] 字段大小写敏感 \*/ /\*取得结果数据\*/ public function mysql\_result\_li() { return mysql\_result($str); } /\*取得记录集,获取数组-索引和关联,使用$row\['content'\] \*/ public function fetch\_array($resultt="") { if($resultt<>""){ return mysql\_fetch\_array($resultt); }else{ 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 public function findall($table) { $this->query("SELECT \* FROM $table"); } //简化查询select public function select($table, $columnName = "\*", $condition = '', $debug = '') { $condition = $condition ? ' Where ' . $condition : NULL; if ($debug) { echo "SELECT $columnName FROM $table $condition"; } else { $this->query("SELECT $columnName FROM $table $condition"); } } //简化删除del public function delete($table, $condition, $url = '') { if ($this->query("DELETE FROM $table WHERE $condition")) { if (!empty ($url)) $this->Get\_admin\_msg($url, '删除成功!'); } } //简化插入insert public function insert($table, $columnName, $value, $url = '') { if ($this->query("INSERT INTO $table ($columnName) VALUES ($value)")) { if (!empty ($url)) $this->Get\_admin\_msg($url, '添加成功!'); } } //简化修改update public function update($table, $mod\_content, $condition, $url = '') { //echo "UPDATE $table SET $mod\_content WHERE $condition"; exit(); if ($this->query("UPDATE $table SET $mod\_content WHERE $condition")) { if (!empty ($url)) $this->Get\_admin\_msg($url); } } /\*取得上一步 INSERT 操作产生的 ID\*/ public function insert\_id() { return mysql\_insert\_id(); } //指向确定的一条数据记录 public function db\_data\_seek($id) { if ($id > 0) { $id = $id -1; } if (!@ mysql\_data\_seek($this->result, $id)) { $this->show\_error("SQL语句有误:", "指定的数据为空"); } return $this->result; } // 根据select查询结果计算结果集条数 public function db\_num\_rows() { if ($this->result == null) { if ($this->show\_error) { $this->show\_error("SQL语句错误", "暂时为空,没有任何内容!"); } } else { return mysql\_num\_rows($this->result); } } // 根据insert,update,delete执行结果取得影响行数 public function db\_affected\_rows() { return mysql\_affected\_rows(); } //输出显示sql语句 public function show\_error($message = "", $sql = "") { if (!$sql) { echo "" . $message . ""; echo "
"; } else { echo ""; echo "
"; } //释放结果集 public function free() { @ mysql\_free\_result($this->result); } //数据库选择 public function select\_db($db\_database) { return mysql\_select\_db($db\_database); } //查询字段数量 public function num\_fields($table\_name) { //return mysql\_num\_fields($this->result); $this->query("select \* from $table\_name"); echo "
"; echo "字段数:" . $total = mysql\_num\_fields($this->result); echo "
"; for ($i = 0; $i < $total; $i++) { print\_r(mysql\_fetch\_field($this->result, $i)); } echo ""; echo "
"; } //取得 MySQL 服务器信息 public function mysql\_server($num = '') { switch ($num) { case 1 : return mysql\_get\_server\_info(); //MySQL 服务器信息 break; case 2 : return mysql\_get\_host\_info(); //取得 MySQL 主机信息 break; case 3 : return mysql\_get\_client\_info(); //取得 MySQL 客户端信息 break; case 4 : return mysql\_get\_proto\_info(); //取得 MySQL 协议信息 break; default : return mysql\_get\_client\_info(); //默认取得mysql版本信息 } } //析构函数,自动关闭数据库,垃圾回收机制 public function \_\_destruct() { if (!empty ($this->result)) { $this->free(); } mysql\_close($this->conn); } //function \_\_destruct(); /\*获得客户端真实的IP地址\*/ function getip() { if (getenv("HTTP\_CLIENT\_IP") && strcasecmp(getenv("HTTP\_CLIENT\_IP"), "unknown")) { $ip = getenv("HTTP\_CLIENT\_IP"); } else if (getenv("HTTP\_X\_FORWARDED\_FOR") && strcasecmp(getenv("HTTP\_X\_FORWARDED\_FOR"), "unknown")) { $ip = getenv("HTTP\_X\_FORWARDED\_FOR"); } else if (getenv("REMOTE\_ADDR") && strcasecmp(getenv("REMOTE\_ADDR"), "unknown")) { $ip = getenv("REMOTE\_ADDR"); } else if (isset ($\_SERVER\['REMOTE\_ADDR'\]) && $\_SERVER\['REMOTE\_ADDR'\] && strcasecmp($\_SERVER\['REMOTE\_ADDR'\], "unknown")) { $ip = $\_SERVER\['REMOTE\_ADDR'\]; } else { $ip = "unknown"; } return ($ip); } function inject\_check($sql\_str) { //防止注入 $check = eregi('select|insert|update|delete|\\'|\\/\\\*|\\\*|\\.\\.\\/|\\.\\/|union|into|load\_file|outfile', $sql\_str); if ($check) { echo "输入非法注入内容!"; exit (); } else { return $sql\_str; } } function checkurl() { //检查来路 if (preg\_replace("/https?:\\/\\/(\[^\\:\\/\]+).\*/i", "\\\\1", $\_SERVER\['HTTP\_REFERER'\]) !== preg\_replace("/(\[^\\:\]+).\*/", "\\\\1", $\_SERVER\['HTTP\_HOST'\])) { header("Location: http://www.dareng.com"); exit(); } } } ?>