对课堂数据库操作的编写
结合之前的课程,将demo4.php的文件的insert、update、delect方法进行了编写。
源码:
<?php
//接口应用场景:用抽象类来实现接口
// 定义一个数据库的增删改查
require __DIR__ ."/config.php";
interface iDbase
{
public static function insert($db,$data);
//添加
public static function select($db,$option=[]);
//查询
public static function update($db,$option);
//更新
public static function delete($db,$where);
//删除
}
// 实现类:使用抽象类来充当
abstract class aDb implements iDbase
{
//使用单例模式连接:创建类的唯一对象
//抽象类充当接口实现类时,不用必须实现接口中的抽象方法
//当实现类中的方法中有一些公共操作时,可以将这些操作放在中间的抽象类中实现它
protected static $db =null;
public static function cennect($dsn,$username,$password)
{
if(is_null(self::$db)) //如果当前连接对象是:null,表示未连接数据库
{
self::$db = new PDO($dsn,$username,$password);
}
return self::$db;
}
}
//类的真正实现类
class DB extends aDb
{
public static function insert($db,$data)
{
extract($data);
$sql='INSERT `user` SET `username`=?,`password`=?,`age`=?,`sex`=?,`email`=?,`mobile`=?;';
$stmt = $db->prepare($sql);
$stmt->execute([$username,$password,$sex,$age,$mobile,$email]);
return '成功点击了'.$stmt->rowCount().'条数据';
}
//添加
public static function select($db,$option=[])
{
return $db->query('SELECT * FROM `user` LIMIT 3')->fetchAll(PDO::FETCH_ASSOC);
}
//查询
public static function update($db,$data)
{
extract($data);
$id=334;
$sql = 'UPDATE `user` SET `username`=?,`password`=?,`sex`=?,`age`=?,`email`=?,`mobile`=? WHERE `Id`>?;';
$stmt = $db->prepare($sql);
$stmt->execute([$username,$password,$sex,$age,$email,$mobile,$id]);
return '更新了'.$stmt->rowCount().'条数据';
}
//更新
public static function delete($db,$id)
{
$sql = 'DELETE FROM `user` WHERE `Id`>?;';
$stmt = $db->prepare($sql);
$stmt->execute([$id]);
return '成功删除'.$stmt->rowCount().'条记录';
}
}
$db = DB::cennect($dsn,$username,$password);
// foreach (DB::select($db) as $user)
// {
// print_r($user);
// }
$data = [
'username'=>'嫦娥',
'password'=> sha1('8888'),
'age'=> 98,
'sex'=>'女',
'email'=> 'ce@163.com',
'mobile'=> '15687874598',
];
$insert = new DB;
$id = 334;
echo $insert->insert($db,$data);
echo $insert->update($db,$data,);
echo $insert->delete($db,$id);
示例图:
总结:知道这是错误的写法,不过可以完成增删改查,在接下来的课程中在对此次作业进行正确的编写