You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
191 lines
4.9 KiB
PHP
191 lines
4.9 KiB
PHP
<?php
|
|
//MySQL、MySQLi、SQLite 三合一数据库操作类
|
|
if(!defined('IN_CRONLITE'))exit();
|
|
|
|
$nomysqli=false;
|
|
|
|
if(defined('SQLITE')==true){
|
|
class DB {
|
|
var $link = null;
|
|
|
|
function __construct($db_file){
|
|
global $siteurl;
|
|
$this->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];
|
|
}
|
|
}
|
|
}
|
|
elseif(extension_loaded('mysqli') && $nomysqli==false) {
|
|
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 num_rows($result){
|
|
return mysqli_num_rows($result);
|
|
}
|
|
function get_row($q){
|
|
$result = mysqli_query($this->link,$q);
|
|
return mysqli_fetch_assoc($result);
|
|
}
|
|
function get_column($q){
|
|
$result = mysqli_query($this->link,$q);
|
|
$row = mysqli_fetch_array($result);
|
|
return $row[0];
|
|
}
|
|
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 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 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 num_rows($result){
|
|
return mysql_num_rows($result);
|
|
}
|
|
function get_row($q){
|
|
$result = mysql_query($q, $this->link);
|
|
return mysql_fetch_assoc($result);
|
|
}
|
|
function get_column($q){
|
|
$result = mysql_query($q, $this->link);
|
|
$row = mysql_fetch_array($result);
|
|
return $row[0];
|
|
}
|
|
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 error(){
|
|
$error = mysql_error($this->link);
|
|
$errno = mysql_errno($this->link);
|
|
return '['.$errno.'] '.$error;
|
|
}
|
|
function close(){
|
|
$q = mysql_close($this->link);
|
|
return $q;
|
|
}
|
|
}
|
|
|
|
}
|
|
?>
|