Correction status:qualified
Teacher's comments:
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来操作数据库,效率更高(执行速度更快)
④ 安全性更高
⑤学习了面对对象的编程,感觉很实用,在学校学习的是面向过程是另一种思维,面向过程的实用性非常明显是绝对占据优势的,会继续坚持学习的