批改状态:合格
老师批语:下次再不写作业总结,就直接不合格了
interface iDbBase{// 新增public static function insert($db, $data);// 查询public static function select($db, $optoins = []);// 更新public static function update($db, $optoins);// 删除public static function delete($db, $where);}
abstract class aDb implements iDbBase{// 使用单例模式连接:创建类的唯一实例,唯一对象protected static $db = null;// 实现类中的方法中有公共操作,放在中间的抽象类中实现它public static function connect($dns, $username, $password){if (is_null(self::$db)) {// 如果是null 表示未连接self::$db = new PDO($dns, $username, $password);}// 如果连接成功就返回return self::$db;}}
class DB extends aDb{// 新增一条public static function insert($db, $data){$stmt = $db->prepare('INSERT `users` SET `name`=?, `email`=? , `password`=?;');$stmt->execute(['Micki', '111@php.cn', sha1('micki123')]);return "受影响的记录有" . $stmt->rowCount() . "条";}// 更新id为8的数据public static function update($db, $optoins){$stmt = $db->prepare('UPDATE `users` SET `name`=?, `email`= ?, `password`=? WHERE `id` = ?;');$stmt->execute(['Melinda', '222@php.cn', sha1('melinda123'), 8]);return "受影响的记录有" . $stmt->rowCount() . "条";}// 删除id是6的数据public static function delete($db, $where){$stmt = $db->prepare('DELETE FROM `users` WHERE `id` = ?;');$stmt->execute([6]);return "受影响的记录有" . $stmt->rowCount() . "条";}// 查询所有数据public static function select($db, $optoins = []){return $db->query('SELECT * FROM `users`')->fetchALL(PDO::FETCH_ASSOC);}}



$config = [// 类型'type' => $type ?? 'mysql',// 默认数据库主机名(IP)'host' => $host ?? 'localhost',// 默认数据库名'dbname' => $type ?? 'phpedu',// 默认字符编码集'charset' => $type ?? 'utf8',// 默认端口号'port' => $type ?? '3306',// 默认用户名'username' => $username ?? 'root',// 默认用户的密码'password' => $password ?? 'melinda123'];// 做配置$dsn = sprintf('%s:host=%s;dbname=%s;', $config['type'], $config['host'], $config['dbname']);$username = $config['username'];$password = $config['password'];// 调用$db = DB::connect($dsn, $username, $password);
// 1.新增// echo DB::insert($db, $data);// 2.修改// echo DB::update($db, $optoins);// 3.删除// echo DB::delete($db, $where);// 4.查询// 调用实现类DB中 select()查询,由于是二维数组,要遍历foreach (DB::select($db) as $user) {print_r($user);}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号