批改状态:合格
老师批语:
<?php// 单例模式连接数据库interface iDbBase{//数据库操作 curdstatic 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连接对象 储存在 $_instanceif(is_null(self::$_instance)){self::$_instance = new PDO($dsn,$username,$password);}return self::$_instance;}}// 工作类class Db extends aDb{//数据库操作 curdstatic function insert($db,$data=''){return $db->query("INSERT INTO t_user ( name, type)VALUES('张杰','1')")->fetchAll(PDO::FETCH_ASSOC);}static function select($db,$where=['type'=>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;}return $db->query("SELECT * FROM `t_user` WHERE $str ")->fetchAll(PDO::FETCH_ASSOC);}static function delete($db,$where=['id'=>4]){$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;}return $db->query("DELETE FROM t_user WHERE $str")->fetchAll(PDO::FETCH_ASSOC);}static function update($db,$data=2,$where=['name'=>'周杰伦','type'=>2]){$str = '';foreach($where as $k=>$v){if(is_array($where)){if(count($where) > 1){$str .= $k . ' = ' . '\'' . $v . '\''. ' , ';}else{$str .= $k . '=' . $v;}}}if(count($where) > 1){// 去掉where中的最后一个and$str = substr($str,0,strlen($str)-2);echo $str;}return $db->query("UPDATE t_user SET $str WHERE id = '$data'")->fetchAll(PDO::FETCH_ASSOC);}}// 客户端代码$dsn = 'mysql:host=localhost;dbname=test_db';$db = Db::doConnect($dsn,'test_db','123456');//var_dump($db);//print_r(Db::select($db));//print_r(Db::insert($db));//print_r(Db::delete($db));print_r(Db::update($db));
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号