数据库查询构造器
16lz
2022-01-20
作业问题:
代码:
<?php
class Query
{
//创建类的唯一实例
private static $db;
protected $table;
protected $field;
protected $limit;
private function __construct()
{
}
static function connect($dsn,$username,$pwd)
{
if(is_null(static::$db)){
static::$db = new PDO($dsn,$username,$pwd);
}
//返回query实例
return new static();
}
public function table($table)
{
$this->table = $table;
// echo $this->table;
return $this;
}
public function field($field)
{
$this->field = $field;
// echo $this->field;
return $this;
}
public function limit($limit)
{
$this->limit = $limit;
return $this;
}
public function getSql()
{
return 'SELECT '.$this->field.' FROM '.$this->table.' LIMIT '.$this->limit;
// return sprintf('SELECT %s FROM %s LIMIT %d',$this->field,$this->table,$this->limit);
}
public function select(){
return static::$db->query($this->getSql())->fetchALL(PDO::FETCH_ASSOC);
}
}
class Db
{
static function __callStatic($method, $arygs)
{
$dsn = 'mysql:host=localhost;dbname=test_db';
$username = 'test_db';
$pwd = '123456';
//获取委托实例
$query = Query::connect($dsn,$username,$pwd);
return call_user_func([$query,$method],...$arygs);
}
}
//$res = Db::table('t_user')
// ->field('name')
// ->limit(1)
// ->select();
//
//print_r($res);
print_r(Db::filed('nihao'));
更多相关文章
- 《Android和PHP最佳实践》官方站
- android用户界面之按钮(Button)教程实例汇
- TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
- Android(安卓)UI开发第十七篇——Android(安卓)Fragment实例(Lis
- Android——Activity四种启动模式
- Android布局(序章)
- Android发送短信方法实例详解
- Android(安卓)读取资源文件实例详解
- android 蓝牙通讯