批改状态:合格
老师批语:
1自定义方法 PDO向数据库查询数据
// 查询数据
// $table 必须传值
// 作业 : 用PDO把增删改方法写好,可以传值
function select($table,$field,$where='',$order='',$limit=''){
// 1,连接
$c = con();
// 2,sql语句
$sql = 'SELECT '; // 组装select关键词
// 如果返回值传值,才进行组装
if(!empty($field)){
$sql .= trim($field); // 组装查询返回字段
}
else{
$field='*';
$sql .= $field;
}
$sql .= ' FROM '; // 组装表名关键词
$sql .= $table; // 组装表名
// empty 判断变量是否为空
// ! 取反
// !empty($where) 判断变量不为空,才会进入if
// 判断是否传条件,传了条件进行条件组装
if(!empty($where)){
$sql .= ' WHERE '; // 组装条件关键词
$sql .= trim($where); // 组装条件
}
// 判断排序
if(!empty($order)){
$sql .= ' ORDER BY ';
$sql .= trim($order);
}
// 判断数量
if(!empty($limit)){
$sql .= ' LIMIT ';
$sql .= trim($limit);
}
// 3,预处理sql语句
$a = $c->prepare($sql);
// 4,执行sql语句,判断是否执行mysql语句成功
// 为什么要判断,别人使用咱们写好的方法,可能会传一些,无法估计的参数,导致查询失败。
if($a->execute()){
// 当查询结果后,结果集是没有数据的。
// 用rowCount方法,判断结果集是否有结果,有结果我们才返回结果
if($a->rowCount()){
// 5,设置模式
$a->setFetchMode(PDO::FETCH_ASSOC);
// 6,结果集
$ret = $a->fetchAll();
// 返回结果集
return $ret;
}else{
return false;
}
}else{
return false;
}
}
// $s = select('staff','','id>=2','id desc','0,1');
// print_r($s);点击 "运行实例" 按钮查看在线实例
调用select方法得到的效果图:

2.自定义方法 PDO添加数据到数据库
//添加数据
function add($table,$field,$content){
// 1,连接
$c = con();
// 2,sql语句
$sql = ' INSERT INTO '; //组装添加语句
$sql .= trim($table); //trim()去掉前后空格
//判断要添加的字段是否为空 为空则默认全部字段,不为空则为输入的字段
if (!empty($field)) {
$sql .= trim("($field)");
}
$sql .= ' VALUES ';
//对应字段填入要添加的内容
$sql .= trim("($content)");
// 3,预处理sql语句
$a = $c->prepare($sql);
// 4,执行sql语句,判断是否执行mysql语句成功
// 为什么要判断,别人使用咱们写好的方法,可能会传一些,无法估计的参数,导致查询失败。
if($a->execute()){
return '添加成功';
}else{
return "添加失败";
}
}
// $add = add('staff','name,position','"李锐欣4","最强全栈工程师4"');
// echo $add;点击 "运行实例" 按钮查看在线实例
调用add方法得到的效果图

3.自定义方法删除数据库数据
//删除数据
function delete($table,$where=''){
//连接数据库
$c = con();
$sql = 'DELETE'; //组装删除语句
$sql .= ' FROM ';
$sql .= trim($table);
//where必须填不然删除的是整个表,填入则删除对应的数据行
if (!empty($where)) {
$sql .= ' WHERE ';
$sql .= trim($where);
}
//3,预处理sql语句
$a = $c->prepare($sql);
// 4,执行sql语句,判断是否执行mysql语句成功
// 为什么要判断,别人使用咱们写好的方法,可能会传一些,无法估计的参数,导致查询失败。
if($a->execute()){
return '删除成功';
}else{
return "删除失败";
}
}
// $delete = delete('staff');
// echo $delete;点击 "运行实例" 按钮查看在线实例
调用delete方法得到的效果图:

4.自定义方法PDO修改数据库数据
//修改数据
function update($table,$field,$where=''){
//连接数据库
$c = con();
$sql = ' UPDATE '; //组装修改语句
$sql .= trim($table);
$sql .= ' SET ';
$sql .= trim($field);
//wehere必须填不然将整个表修改,填入则修改对应的数据行
if (!empty($where)) {
$sql .= ' WHERE ';
$sql .= trim($where);
}
//3,预处理sql语句
$a = $c->prepare($sql);
// 4,执行sql语句,判断是否执行mysql语句成功
// 为什么要判断,别人使用咱们写好的方法,可能会传一些,无法估计的参数,导致查询失败。
if($a->execute()){
return '修改成功';
}else{
return "修改失败";
}
}
//$update = update('staff','name="锐欣会成为PHP工程师"','id=3');
//echo $update;点击 "运行实例" 按钮查看在线实例
调用update方法得到的效果图

5.总结:
① PHP Data Object(php数据对象)-- 它是一种数据库抽象层。用PDO可以连接操作各个数据库。
② 一套代码可以操作多个数据库,更换数据库不用从新写代码
③ 用pdo来操作数据库,效率更高(执行速度更快)
④ 安全性更高
⑤学习了面对对象的编程,感觉很实用,在学校学习的是面向过程是另一种思维,面向过程的实用性非常明显是绝对占据优势的,会继续坚持学习的
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号