批改状态:合格
老师批语:
<?php//定义一个接口interface iDbBase{//数据库的操作增删查改static function insert($db,$data);static function select($db,$where[]);static function delete($db,$where[]);static function update($db, $data,$where[]);// return $this;//实现链式调用static function doConnect($dsn,$username,$password);}//抽象类使用php中的单利模式来连接数据库abstract class aDb implements iDbBase{//返回pdo的链接对象private function $instance;//private阻止此类在外部进行实例化private function __construct(){}//只能由类的自身来进行实例化static function doConnect($dsn,$username,$password){//判断$instance是否是aDb类的对象。用instanceof//self访问静态成员$instanceif(!self::$instance){//实例化本类,传入连接参数。self::$instance =new PDO($dsn,$username,$password)}return self::$instance;}//self单利模式继承}//工作类class Db extends aDb{//数据库的操作增删查改static function insert($db,$data){}static function select($db,$where['gender'=>1,'userid'=>2]){//声明一个变量$str="";foreach($where as $k=>$v){if(count($where)>1){$str.=$k.'=' .$v.'and';}else{$str.=$k.'=' .$v;}}if(count($where)>1) {$str=substr($str,0,strlen(strlen)-4);}else{echo $str;}//limit限定查询表的条数return $db->query("SELECT * FROM 'myid' WHERE $str LIMIT 2")->fetchAll(PDO::FETCH_ASSOC);}static function delete($db,$where['gender'=>1,'userid'=>2]){return $db->query("SELECT * FROM 'myid' WHERE $str LIMIT 1")->fetchAll(PDO::FETCH_ASSOC);}}//客户端代码$config=['type'=> $type??'mysql','host'=> $host='host'??'localhost','dbname'=>$dbname='dbname'??'news','password'=>$password='password'??'123456tyi','username'=> $username='username'??'root',];$dsn=printf('%s:host', $config['type'],$config['host'],$config['dbname']);$username=$config['username'];$password=$config['password'];//获取PDO连接对象$db=Db::doConnect($dsn,$username,$password);echo '<pre>';print_r(Db::select($db));?>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号