文件1 ts.php
<?php
class mysql{
private $link_id;
private $query_id;
/*
* 报错函数
* @param string $error 错误信息
*/
function err($error){
die('对不起,您的操作有误,错误原因为:'.$error);
}
function __construct($config){
extract($config);
$this->link_id=mysqli_connect($host,$user,$pass,$db);
if(!$this->link_id){
$this->err(mysqli_error($this->link_id));
}
}
/*
* 执行sql语句
* @param $sql 查询语句
* @return $query 返回执行成功时的资源 或执行失败
*/
function query($sql){
$this->query_id=mysqli_query($this->link_id,$sql);
if(!$this->query_id ){
$this->err($sql.'<br>'.mysqli_error($this->link_id));
}else{
return $this->query_id; //返回的结果在类里可以用
}
}
/*
* 返回全部的查询结果
* @param source $query 由mysql_query($sql)返回的资源
* @return array 返回数组
*/
function findAll($sql){
$query=$this->query($sql);
while($row=mysqli_fetch_array($query,MYSQLI_ASSOC)){
$list[]=$row;
}
return (!empty($list))?$list:'';
}
/*
* 返回单条结果
* @param source $query 由mysql_query($sql)返回的资源
* @return $rs 单条信息数组
*/
function findOne($sql){
$query=$this->query($sql);
$rs=mysqli_fetch_array($query,MYSQL_ASSOC);
return $rs;
}
/*
* 返回指定行的指定字段的值
* @param source $query 由mysql_query($sql)返回的资
* @return array
*/
function findResult($sql,$row=0,$field=0){//$row $field 有默认值
$query=$this->query($sql);
$rs=mysqli_result($query,$row,$field);
return $rs;
}
/*
* 添加数据
* @param $table 表名
* @param array $arr 关联数组(键为字段 值为字段值)
* @return bool 返回添加操作成功或不成功
*/
function insert($table,$arr){
//得先把$arr数组里的键值对循环出来
foreach($arr as $key=>$value){
//循环出来的 $key 组成一新数组$keyArr
//循环出来的 $value 组成一新数组$valueArr
//去除非法字符
$value=addslashes($value);
$keyArr[] = "".$key."";
//在insert 语句中 值多为字符串 需要加单引号
$valueArr[] = "'".$value."'";
}
//用implode()函数 用,将数组的值连为一个字符串
$keys = implode(',',$keyArr);//print($keys);exit;
$values = implode(',',$valueArr);//print($values);exit;
$sql = "insert into ".$table."(".$keys.") values (".$values.")";//inser into table () values ()
//echo $sql;exit;
$query=$this->query($sql);
//$query?true:false;
if(!$query){
$this->err(mysqli_error($this->link_id));
}else{
return true;
}
}
/**
*更新数据库
*@param string $table 表名
*@param array $arr 修改数组(包含字段和值的一维数组)
*@param string $where 条件
**/
function update($table,$arr,$where){
foreach($arr as $key=>$value){
$value = mysqli_escape_string($this->link_id,$value);
//echo $value;exit;
$keyAndValueArr[] = "".$key."='".$value."'";
}
$keyAndValue = implode(',',$keyAndValueArr);//echo $keyAndValue;exit;
$sql="update ".$table." set ".$keyAndValue." where ".$where;//echo $sql;exit;//update table set key = 'value' where $where
$query=$this->query($sql);
if(!$query){
$this->err(mysqli_error($this->link_id));
}else{
return true;
}
}
/**
* 删除数据
*@param string $table 表名
*@param string $where 条件
*/
function del($table,$where){
$sql="delete from ".$table." where ".$where; //delete from table where ?
$query=$this->query($sql);
if(!$query){
$this->err(mysqli_error($this->link_id));
}else{
return true;
}
}
}
?>
文件2ts1.php
<?
include_once("ts.php");
class DB {
public static $db;
public static function init($dbtype,$config){
self::$db = new $dbtype($config);
}
public static function query($sql){
return self::$db->query($sql);
}
public static function findAll($sql){
return self::findAll($sql);
}
public static function findOne($sql){
return self::findOne($sql);
}
public static function insert($table,$arr){
return self::insert($table,$arr);
}
public static function update($table,$arr,$where){
return self::update($table,$arr,$where);
}
public static function del($table,$where){
return self::del($table,$arr,$where);
}
}
?>
test.php
<?php
include_once("ts1.php");
$config=array(
'host'=>'127.0.0.1',
'user'=>'xiao',
'pass'=>'111111',
'db'=>'mr_mysql'
);
$db=DB::init('mysql',$config);
$sql="select * from zqlb";
$rs=DB::findAll($sql);
var_dump($rs);
?>
<?php
class mysql{
private $link_id;
private $query_id;
/*
* 报错函数
* @param string $error 错误信息
*/
function err($error){
die('对不起,您的操作有误,错误原因为:'.$error);
}
function __construct($config){
extract($config);
$this->link_id=mysqli_connect($host,$user,$pass,$db);
if(!$this->link_id){
$this->err(mysqli_error($this->link_id));
}
}
/*
* 执行sql语句
* @param $sql 查询语句
* @return $query 返回执行成功时的资源 或执行失败
*/
function query($sql){
$this->query_id=mysqli_query($this->link_id,$sql);
if(!$this->query_id ){
$this->err($sql.'<br>'.mysqli_error($this->link_id));
}else{
return $this->query_id; //返回的结果在类里可以用
}
}
/*
* 返回全部的查询结果
* @param source $query 由mysql_query($sql)返回的资源
* @return array 返回数组
*/
function findAll($sql){
$query=$this->query($sql);
while($row=mysqli_fetch_array($query,MYSQLI_ASSOC)){
$list[]=$row;
}
return (!empty($list))?$list:'';
}
/*
* 返回单条结果
* @param source $query 由mysql_query($sql)返回的资源
* @return $rs 单条信息数组
*/
function findOne($sql){
$query=$this->query($sql);
$rs=mysqli_fetch_array($query,MYSQL_ASSOC);
return $rs;
}
/*
* 返回指定行的指定字段的值
* @param source $query 由mysql_query($sql)返回的资
* @return array
*/
function findResult($sql,$row=0,$field=0){//$row $field 有默认值
$query=$this->query($sql);
$rs=mysqli_result($query,$row,$field);
return $rs;
}
/*
* 添加数据
* @param $table 表名
* @param array $arr 关联数组(键为字段 值为字段值)
* @return bool 返回添加操作成功或不成功
*/
function insert($table,$arr){
//得先把$arr数组里的键值对循环出来
foreach($arr as $key=>$value){
//循环出来的 $key 组成一新数组$keyArr
//循环出来的 $value 组成一新数组$valueArr
//去除非法字符
$value=addslashes($value);
$keyArr[] = "".$key."";
//在insert 语句中 值多为字符串 需要加单引号
$valueArr[] = "'".$value."'";
}
//用implode()函数 用,将数组的值连为一个字符串
$keys = implode(',',$keyArr);//print($keys);exit;
$values = implode(',',$valueArr);//print($values);exit;
$sql = "insert into ".$table."(".$keys.") values (".$values.")";//inser into table () values ()
//echo $sql;exit;
$query=$this->query($sql);
//$query?true:false;
if(!$query){
$this->err(mysqli_error($this->link_id));
}else{
return true;
}
}
/**
*更新数据库
*@param string $table 表名
*@param array $arr 修改数组(包含字段和值的一维数组)
*@param string $where 条件
**/
function update($table,$arr,$where){
foreach($arr as $key=>$value){
$value = mysqli_escape_string($this->link_id,$value);
//echo $value;exit;
$keyAndValueArr[] = "".$key."='".$value."'";
}
$keyAndValue = implode(',',$keyAndValueArr);//echo $keyAndValue;exit;
$sql="update ".$table." set ".$keyAndValue." where ".$where;//echo $sql;exit;//update table set key = 'value' where $where
$query=$this->query($sql);
if(!$query){
$this->err(mysqli_error($this->link_id));
}else{
return true;
}
}
/**
* 删除数据
*@param string $table 表名
*@param string $where 条件
*/
function del($table,$where){
$sql="delete from ".$table." where ".$where; //delete from table where ?
$query=$this->query($sql);
if(!$query){
$this->err(mysqli_error($this->link_id));
}else{
return true;
}
}
}
?>
文件2ts1.php
<?
include_once("ts.php");
class DB {
public static $db;
public static function init($dbtype,$config){
self::$db = new $dbtype($config);
}
public static function query($sql){
return self::$db->query($sql);
}
public static function findAll($sql){
return self::findAll($sql);
}
public static function findOne($sql){
return self::findOne($sql);
}
public static function insert($table,$arr){
return self::insert($table,$arr);
}
public static function update($table,$arr,$where){
return self::update($table,$arr,$where);
}
public static function del($table,$where){
return self::del($table,$arr,$where);
}
}
?>
test.php
<?php
include_once("ts1.php");
$config=array(
'host'=>'127.0.0.1',
'user'=>'xiao',
'pass'=>'111111',
'db'=>'mr_mysql'
);
$db=DB::init('mysql',$config);
$sql="select * from zqlb";
$rs=DB::findAll($sql);
var_dump($rs);
?>
解决方案 »
- 请教,cakephp组件调用模型操作数据库~~
- 如果知道id为2了,怎么一次搜索得出 “新闻 新闻下级”呢??
- 在linux图片上传不了 验证码不能显示
- ecshop错误求解
- 帮帮!!
- 读写文件的问题
- 我配置完了PHP环境,执行一个不带数据库的最简单的网页,执行提示无法"连接到数据库",是怎么回事,该怎么办??
- 这里的js:document.thisform.act.value=1和js:document.thisform.act.value=0是什么意思啊
- 正则采集问题,求大神帮忙,在线等
- php curl抓取百度搜索页面,无法翻页
- php文件把指定的额度(提成奖)换成百分比
- thinkphp 微信 不能查询中文, 快崩溃了......
哪里有错?????大神赐教!!!!
return self::findAll($sql);
}
自己调用自己,这还不是递归吗?
public static function findAll($sql){
return self::$db->findAll($sql);
}
public static function findAll($sql){
return self::findAll($sql);
}
是递归。