defined('ACC')||exit('ACC Denied');
class mysql extends db {
private static $ins = NULL;
private $conn = NULL;
private $conf = array();
protected function __construct() {
$this->conf = conf::getIns();
$this->connect($this->conf->host,$this->conf->user,$this->conf->pwd);
$this->select_db($this->conf->db);
$this->setChar($this->conf->char);
}
public function __destruct() {
}
public static function getIns() {
if(!(self::$ins instanceof self)) {
self::$ins = new self();
}
return self::$ins;
}
public function connect($h,$u,$p) {
$this->conn = mysql_connect($h,$u,$p);
if(!$this->conn) {
$err = new Exception('连接失败');
throw $err;
}
}
protected function select_db($db) {
$sql = 'use ' . $db;
$this->query($sql);
}
protected function setChar($char) {
$sql = 'set names ' . $char;
return $this->query($sql);
}
public function query($sql) {
$rs = mysql_query($sql,$this->conn);
log::write($sql);
return $rs;
}
public function autoExecute($table,$arr,$mode='insert',$where = ' where 1 limit 1') {
/* insert into tbname (username,passwd,email) values ('',)
/// 把所有的键名用','接起来
// implode(',',array_keys($arr));
// implode("','",array_values($arr));
*/
if(!is_array($arr)) {
return false;
}
if($mode == 'update') {
$sql = 'update ' . $table .' set ';
foreach($arr as $k=>$v) {
$sql .= $k . "='" . $v ."',";
}
$sql = rtrim($sql,',');
$sql .= $where;
return $this->query($sql);
}
$sql = 'insert into ' . $table . ' (' . implode(',',array_keys($arr)) . ')';
$sql .= ' values (\'';
$sql .= implode("','",array_values($arr));
$sql .= '\')';
return $this->query($sql);
}
public function getAll($sql) {
$rs = $this->query($sql);
$list = array();
while($row = mysql_fetch_assoc($rs)) {
$list[] = $row;
}
return $list;
}
public function getRow($sql) {
$rs = $this->query($sql);
return mysql_fetch_assoc($rs);
}
public function getOne($sql) {
$rs = $this->query($sql);
$row = mysql_fetch_row($rs);
return $row[0];
}
// 返回影响行数的函数
public function affected_rows() {
return mysql_affected_rows($this->conn);
}
// 返回最新的auto_increment列的自增长的值
public function insert_id() {
return mysql_insert_id($this->conn);
}
}