本文作者:温文曦

一个PHP的MySQL、MySQLi、SQLite 三合一数据库操作类

温文曦 2021-12-17 168 抢沙发 百度已收录
一个PHP的MySQL、MySQLi、SQLite 三合一数据库操作类摘要:         这个类,在很多地方都能看到。<?php//MySQL、MySQLi、SQL...

        这个类,在很多地方都能看到。

<?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 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 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 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 error(){

			$error = mysql_error($this->link);

			$errno = mysql_errno($this->link);

			return '['.$errno.'] '.$error;

		}

		function close(){

			$q = mysql_close($this->link);

			return $q;

		}

	}



}

?>

        

使用示例:


$DB=new DB($host,$user,$pwd,$dbname,$port);//链接数据库

$fwqlist=$DB->query("SELECT * FROM auth_fwq");//获取数据
$conf=$DB->get_row("SELECT * FROM auth_config WHERE id='1' limit 1");//获取一条数据


$DB->query("insert into `auth_log` (`action`,`msg`) values ('".$action."','".$msg."')");//执行sql语句,插入数据
$numrows=$DB->count("SELECT count(*) from jbkm WHERE{$sql}");//计数

$rs=$DB->query("SELECT * FROM jbkm WHERE{$sql} order by id desc limit $offset,$pagesize");//多条数据
while($res = $DB->fetch($rs)){
var_dump($res);
}

if($DB->query("DELETE FROM jbkm WHERE kind='$kind'")==true){//删除数据
echo '<div class="box">清空成功.</div>';
}


if($DB->query("update `jbkm` set `beizhu`='$beizhu',`useip`='$useip',`isuse`='$state',`endtime`='$endtime' where id='$id'")){//修改数据
    echo '修改成功!';
}else{
    echo '修改失败!'.$DB->error();
}


$sql = $DB->query("select * from auth_configs");//获取kv例子
while($r = $DB->fetch($sql)){
    $configs[$r['k']] = $r['v'];
}


文章版权及转载声明

作者:温文曦本文地址:https://vience.cn/blog/672.html发布于 2021-12-17
文章转载或复制请以超链接形式并注明出处文曦博客

赞(5)
阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,168人围观)参与讨论

还没有评论,来说两句吧...