link = new PDO('sqlite:'.ROOT.'includes/sqlite/'.$db_file.'.db'); if (!$this->link) die('Connection Sqlite failed.\n'); return true; } function fetch($q){ return $q->fetch(); } function get_row($q){ $sth = $this->link->query($q); return $sth->fetch(); } function count($q){ $sth = $this->link->query($q); return $sth->fetchColumn(); } function query($q){ return $this->result=$this->link->query($q); } function affected(){ return $this->result->rowCount(); } function error(){ $error = $this->link->errorInfo(); return '['.$error[1].'] '.$error[2]; } function prepare($sql, $params = []){ $sth = $this->link->prepare($sql); $sth->execute($params); return $sth; } function get_row_prepare($sql, $params = []){ $sth = $this->prepare($sql, $params); return $sth->fetch(PDO::FETCH_ASSOC); } function get_all_prepare($sql, $params = []){ $sth = $this->prepare($sql, $params); return $sth->fetchAll(PDO::FETCH_ASSOC); } function query_prepare($sql, $params = []){ $sth = $this->link->prepare($sql); return $sth->execute($params); } function count_prepare($sql, $params = []){ $sth = $this->prepare($sql, $params); return $sth->fetchColumn(); } } } elseif(extension_loaded('mysqli') && $nomysqli==false) { mysqli_report(MYSQLI_REPORT_OFF); class DB { var $link = null; function __construct($db_host,$db_user,$db_pass,$db_name,$db_port){ $this->link = mysqli_connect($db_host, $db_user, $db_pass, $db_name, $db_port); if (!$this->link) die('Connect Error (' . mysqli_connect_errno() . ') '.mysqli_connect_error()); //mysqli_select_db($this->link, $db_name) or die(mysqli_error($this->link)); mysqli_query($this->link,"set sql_mode = ''"); //字符转换,读库 mysqli_query($this->link,"set character set 'utf8'"); //写库 mysqli_query($this->link,"set names 'utf8'"); return true; } function fetch($q){ return mysqli_fetch_assoc($q); } function get_row($q){ $result = mysqli_query($this->link,$q); return mysqli_fetch_assoc($result); } function count($q){ $result = mysqli_query($this->link,$q); $count = mysqli_fetch_array($result); return $count[0]; } function query($q){ return mysqli_query($this->link,$q); } function query_multi($q){ return mysqli_multi_query($this->link,$q); } function escape($str){ return mysqli_real_escape_string($this->link,$str); } function insert($q){ if(mysqli_query($this->link,$q)) return mysqli_insert_id($this->link); return false; } function affected(){ return mysqli_affected_rows($this->link); } function insert_array($table,$array){ $q = "INSERT INTO `$table`"; $q .=" (`".implode("`,`",array_keys($array))."`) "; $q .=" VALUES ('".implode("','",array_values($array))."') "; if(mysqli_query($this->link,$q)) return mysqli_insert_id($this->link); return false; } function prepare($sql, $params = []){ $stmt = mysqli_prepare($this->link, $sql); if (!$stmt) return false; if ($params) { $types = ''; foreach ($params as $v) { $types .= is_int($v) ? 'i' : (is_float($v) ? 'd' : 's'); } mysqli_stmt_bind_param($stmt, $types, ...$params); } mysqli_stmt_execute($stmt); return $stmt; } function get_row_prepare($sql, $params = []){ $stmt = $this->prepare($sql, $params); if (!$stmt) return false; $result = mysqli_stmt_get_result($stmt); mysqli_stmt_close($stmt); return $result ? mysqli_fetch_assoc($result) : false; } function get_all_prepare($sql, $params = []){ $stmt = $this->prepare($sql, $params); if (!$stmt) return false; $result = mysqli_stmt_get_result($stmt); mysqli_stmt_close($stmt); return $result ? mysqli_fetch_all($result, MYSQLI_ASSOC) : false; } function query_prepare($sql, $params = []){ $stmt = mysqli_prepare($this->link, $sql); if (!$stmt) return false; if ($params) { $types = ''; foreach ($params as $v) { $types .= is_int($v) ? 'i' : (is_float($v) ? 'd' : 's'); } mysqli_stmt_bind_param($stmt, $types, ...$params); } $ret = mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); return $ret; } function count_prepare($sql, $params = []){ $stmt = $this->prepare($sql, $params); if (!$stmt) return 0; mysqli_stmt_bind_result($stmt, $count); mysqli_stmt_fetch($stmt); mysqli_stmt_close($stmt); return (int)$count; } function error(){ $error = mysqli_error($this->link); $errno = mysqli_errno($this->link); return '['.$errno.'] '.$error; } function close(){ $q = mysqli_close($this->link); return $q; } } } else { // we use the old mysql class DB { var $link = null; function __construct($db_host,$db_user,$db_pass,$db_name,$db_port){ $this->link = @mysql_connect($db_host.':'.$db_port, $db_user, $db_pass); if (!$this->link) die('Connect Error (' . mysql_errno() . ') '.mysql_error()); mysql_select_db($db_name, $this->link) or die(mysql_error($this->link)); mysql_query("set sql_mode = ''"); //字符转换,读库 mysql_query("set character set 'utf8'"); //写库 mysql_query("set names 'utf8'"); return true; } function fetch($q){ return mysql_fetch_assoc($q); } function get_row($q){ $result = mysql_query($q, $this->link); return mysql_fetch_assoc($result); } function count($q){ $result = mysql_query($q, $this->link); $count = mysql_fetch_array($result); return $count[0]; } function query($q){ return mysql_query($q, $this->link); } function escape($str){ return mysql_real_escape_string($str, $this->link); } function affected(){ return mysql_affected_rows($this->link); } function insert($q){ if(mysql_query($q, $this->link)) return mysql_insert_id($this->link); return false; } function insert_array($table,$array){ $q = "INSERT INTO `$table`"; $q .=" (`".implode("`,`",array_keys($array))."`) "; $q .=" VALUES ('".implode("','",array_values($array))."') "; if(mysql_query($q, $this->link)) return mysql_insert_id($this->link); return false; } function prepare($sql, $params = []){ return $this->query($sql); } function get_row_prepare($sql, $params = []){ return $this->get_row($sql); } function get_all_prepare($sql, $params = []){ return false; } function query_prepare($sql, $params = []){ return $this->query($sql); } function count_prepare($sql, $params = []){ return $this->count($sql); } function error(){ $error = mysql_error($this->link); $errno = mysql_errno($this->link); return '['.$errno.'] '.$error; } function close(){ $q = mysql_close($this->link); return $q; } } } ?>