博客列表 >11月27日作业 把 php公用方法库中的 数据库操作函数, 重写到 Db类中

11月27日作业 把 php公用方法库中的 数据库操作函数, 重写到 Db类中

随风
随风原创
2019年12月01日 00:39:29548浏览

把 php公用方法库中的 数据库操作函数, 重写到 Db类中

`<?php
namespace Db;
class Db{
protected $pdo = null;
protected $table ;

  1. public function __construct($dsn,$user,$password,$table)
  2. {
  3. $this->pdo =new \PDO($dsn,$user,$password);
  4. $this->table=$table;
  5. }
  6. // 读取
  7. public function select($fields='*',$where='',$order ='',$limit='0,10')
  8. {
  9. $where = empty($where) ? '' : ' WHERE ' . $where;
  10. $order = empty($order) ? '' : ' ORDER by ' . $order;
  11. $limit = ' LIMIT ' . $limit;
  12. $sql = 'SELECT ' . $fields . ' FROM ' . $this->table . $where . $order . $limit;

// echo $sql;
$stmt = $this->pdo->prepare($sql);
$stmt->execute();

  1. return $stmt->fetchAll(\PDO::FETCH_ASSOC);
  2. }
  3. //新增

// public function create ($data){
// print_r($data);
// echo ‘<br>‘;
// $fields = ‘(name,image,detail,cate_id)’;
// $values = ‘(:name,:image,:detail,:cate_id)’;
//
//// $sql = ‘INSERT INTO ‘ . $this->table . $fields . ‘ VALUES ‘ . $values ;
// $sql = ‘INSERT INTO ‘.$this->table.$fields.’ VALUES ‘.$values;
//
// echo $sql;
// echo ‘<br> 111’;
////// exit;
//// $keyArr = array_keys($data);
//
// echo ‘<br>‘;
//
//
// $stmt =$this->pdo->prepare($sql);
//
// $stmt -> debugDumpParams();
// $stmt ->execute();
//
// return[
// ‘count’ => $stmt->rowCount(),
// ‘id’ => $this->pdo->lastInsertId()
// ];
// }

  1. //新增2
  2. public function create1 ($name,$image,$detail,$cate_id){
  3. $sql = "INSERT `movies` SET
  4. `name`=:name, `image`=:image,`detail`=:detail,cate_id=:cate_id;";

// echo $sql;

  1. $stmt = $this->pdo->prepare($sql);
  2. $stmt ->bindParam('name',$name);
  3. $stmt ->bindParam('image',$image);
  4. $stmt ->bindParam('detail',$detail);
  5. $stmt ->bindParam('cate_id',$cate_id);
  6. $stmt ->execute();
  7. return[
  8. 'count' => $stmt->rowCount(),
  9. 'id' => $this->pdo->lastInsertId()
  10. ];
  11. }
  12. //更新
  13. public function upd($data,$where){
  14. $sql = 'UPDATE '.$this->table.' SET '. $data .' WHERE ' .$where;
  15. echo $sql;
  16. $stmt = $this->pdo->prepare($sql);
  17. $stmt->execute($data);
  18. // 返回被更新的记录数量
  19. return $stmt->rowCount();
  20. }
  21. //更新1

// public function upd1($data1,$where1){
// $keyArr = array_keys($data1);
// print_r($keyArr);
// $set = ‘’;
// // 遍历键名表示的字段列表,拼装预处理需要的sql语句,注意占符符的表示
// foreach ($keyArr as $value) {
// $set .= $value . ‘ = :’ .$value. ‘, ‘;
// }
// // 去掉最后一个逗号, 注意每个逗号后有一个空格,去除时也要带上这个空格
// $set = rtrim($set,’, ‘);
//
// // 预处理执行更新操作
// $sql = ‘UPDATE ‘.$this->table.’ SET ‘.$set .’ WHERE ‘ .$where1;
// echo $sql;
// $stmt = $this->pdo->prepare($sql);
// $stmt->execute($data1);
//
//
//
// // 返回被更新的记录数量
// return $stmt->rowCount();
//
// }

  1. //删除
  2. public function del ($where){
  3. echo $where;
  4. echo '<br>';
  5. $sql ='DELETE FROM '.$this->table. ' WHERE ' .$where;
  6. echo $sql;
  7. echo '<br>';
  8. $stmt = $this->pdo->prepare($sql);
  9. $stmt->execute();
  10. return $stmt->rowCount();
  11. }
  12. }
  13. //数据库连接测试

$db = new DB(‘mysql:hosts=localhost;dbname=gzg’,’root’,’root’,’movies’);

// foreach ($db->select() as $item) {
// print_r($item); echo ‘<br>‘;
// }

  1. //读取测试

// foreach ($db->select(‘mov_id,name,image,detail,cate_id’,’mov_id>3 and cate_id=3’,’name’) as $v){
//// echo ‘<pre>‘ . print_r($v) . ‘<hr>‘;
// print_r($v); echo ‘<br>‘;
// }
// echo ‘<hr>‘;
// 新增测试
$data =[
// ‘mov_id’ => 10,
‘name’ => ‘反黑重案组’,
‘image’ => ‘10.jpg’,
‘detail’ => ‘技术的附件是的奋斗经历时间来得及佛菩萨大解放路街道时间发牢骚’,
‘cate_id’ => ‘3’
] ;
//
// $ins =$db->create($data);
// echo ‘成功新增’.$ins[‘count’].’条记录,最新记录的主键ID是: ‘.$ins[‘id’];
// $res = $db->create1(‘反黑重案组’,’10.jpg’,’技术的附件是的奋斗经历时间来得及佛菩萨大解放路街道时间发牢骚’,3);
//
// echo ‘成功新增’.$res[‘count’].’条记录,最新记录的主键ID是: ‘.$res[‘id’];

//删除测试
// $db->del(‘mov_id =10’);
// $where = ‘mov_id =11’;
// echo ‘成功更新了: ‘ .$db->del($where). ‘ 条记录’;

//更新测试
$data=”name=’忘情水’,cate_id=’1’”;
$where=’mov_id=13’;

//更新测试2
// $data1 = [
// ‘name’=>’忘情水1’,
// ‘age’ => 1
// ];
// $where1 = ‘uid = 15’;
// echo ‘成功更新了: ‘ .$db->upd1($data1, $where1). ‘ 条记录’;`

总结

勉强把这个仿写下来,但是对于数据传输还是不会。特别是数组传进去如何绑定。情老师在课堂上讲一下。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议