数据库查询构造器的增删查改
[toc] //md 内容表
<?php
// 单例模式连接数据库
interface iDbBase
{
//数据库操作 curd
static function insert($db,$data); //插入
static function select($db,$where=[]); //查询
static function delete($db,$where=[]); //删除
static function update($db,$data,$where=[]); //更改
static function doConnect($dsn,$username,$password); //连接
}
//抽象类
abstract class aDb implements iDbBase
{
// 创建类的唯一实例 pdo对象
private static $_instance;
// private私有的 阻止此类在外部进行实例化
private function __construct()
{
}
// private私有的 阻止此类在外部进行克隆
private function __clone(){}
static function doConnect($dsn,$username,$password) //静态方法
{
// 得到pdo连接对象 储存在 $_instance
if(is_null(self::$_instance))
{
self::$_instance = new PDO($dsn,$username,$password); //类的引用 访问静态成员
}
return self::$_instance;
}
}
// 工作类
class Db extends aDb{
//数据库操作 curd
static function insert($db,$data){
}
//数据库查询构造器
static function select($db,$where=['position'=>1,'id'=>1]){
// select filed.. form tableName where gender=1 and id>1
// select filed.. form tableName where gender=1
$str = '';
foreach($where as $k=>$v)
{
if(is_array($where))
{
if(count($where) > 1)
{
$str .= $k . ' = ' . $v . ' and ';
}else{
$str .= $k . '=' . $v;
}
}
}
if(count($where) > 1)
{
// 去掉where中的最后一个and
$str = substr($str,0,strlen($str)-4);
// echo $str;
}
echo $str;
// SELECT `uname`, `tel` FROM `iuser` WHERE gender = 1 and id = 20201
return $db->query("SELECT `title`, `url` FROM `oyk_ad` WHERE $str ")->fetchAll(PDO::FETCH_ASSOC);
}
//数据库查询构造器的增
static function delete($db,$where=['gender'=>1,'uid'=>20201]){
//INSERT INTO 表名称 VALUES ('值', '值1', '值2', '值3')
return $db->query("INSERT INTO `iuser`('chloe','zhoujielun521','951242@qq.com','13113113166','','0','1',) ";
}
//数据库查询构造器的删
static function delete($db,$where=['gender'=>1,'uid'=>20201]){
//DELETE FROM 表名称 WHERE 列名称 = '值'
return $db->query("DELETE FROM `iuser` WHERE uid = '20201' ";
}
//数据库查询构造器的查
static function delete($db,$where=['gender'=>1,'uid'=>20201]){
//SELECT 列名称(可多个,返回数组) FROM 表名称
return $db->query("SELECT `title`, `url` FROM `iuser` WHERE uid = '20201' ";
}
//数据库查询构造器的改
static function update($db,$data,$where=['gender'=>1,'uid'=>20201]){
//UPDATE 表名称 SET 列名称 = '新值' WHERE 列名称 = '某值'
return $db->query("UPDATE FROM `iuser` SET uname = '大帅哥胡歌' WHERE uid = '20201' ";
}
}
// 客户端代码
$dsn = 'mysql:host=localhost;dbname=chloe';
$db = Db::doConnect($dsn,'root','zhoujielun521');
// var_dump($db);
print_r(Db::select($db));
总结
- static function insert($db,$data); //插入
- static function select($db,$where=[]); //查询
- static function delete($db,$where=[]); //删除
- static function update($db,$data,$where=[]); //更改
static function doConnect($dsn,$username,$password); //连接
INSERT INTO 表名称 VALUES (‘值’, ‘值 1’, ‘值 2’, ‘值 3’)
- DELETE FROM 表名称 WHERE 列名称 = ‘值’
- SELECT 列名称(可多个,返回数组) FROM 表名称
- UPDATE 表名称 SET 列名称 = ‘新值’ WHERE 列名称 = ‘某值’