把 php公用方法库中的 数据库操作函数, 重写到 Db类中
`<?php
namespace Db;
class Db{
protected $pdo = null;
protected $table ;
public function __construct($dsn,$user,$password,$table)
{
$this->pdo =new \PDO($dsn,$user,$password);
$this->table=$table;
}
// 读取
public function select($fields='*',$where='',$order ='',$limit='0,10')
{
$where = empty($where) ? '' : ' WHERE ' . $where;
$order = empty($order) ? '' : ' ORDER by ' . $order;
$limit = ' LIMIT ' . $limit;
$sql = 'SELECT ' . $fields . ' FROM ' . $this->table . $where . $order . $limit;
// echo $sql;
$stmt = $this->pdo->prepare($sql);
$stmt->execute();
return $stmt->fetchAll(\PDO::FETCH_ASSOC);
}
//新增
// 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()
// ];
// }
//新增2
public function create1 ($name,$image,$detail,$cate_id){
$sql = "INSERT `movies` SET
`name`=:name, `image`=:image,`detail`=:detail,cate_id=:cate_id;";
// echo $sql;
$stmt = $this->pdo->prepare($sql);
$stmt ->bindParam('name',$name);
$stmt ->bindParam('image',$image);
$stmt ->bindParam('detail',$detail);
$stmt ->bindParam('cate_id',$cate_id);
$stmt ->execute();
return[
'count' => $stmt->rowCount(),
'id' => $this->pdo->lastInsertId()
];
}
//更新
public function upd($data,$where){
$sql = 'UPDATE '.$this->table.' SET '. $data .' WHERE ' .$where;
echo $sql;
$stmt = $this->pdo->prepare($sql);
$stmt->execute($data);
// 返回被更新的记录数量
return $stmt->rowCount();
}
//更新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();
//
// }
//删除
public function del ($where){
echo $where;
echo '<br>';
$sql ='DELETE FROM '.$this->table. ' WHERE ' .$where;
echo $sql;
echo '<br>';
$stmt = $this->pdo->prepare($sql);
$stmt->execute();
return $stmt->rowCount();
}
}
//数据库连接测试
$db = new DB(‘mysql:hosts=localhost;dbname=gzg’,’root’,’root’,’movies’);
// foreach ($db->select() as $item) {
// print_r($item); echo ‘<br>‘;
// }
//读取测试
// 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). ‘ 条记录’;`
总结
勉强把这个仿写下来,但是对于数据传输还是不会。特别是数组传进去如何绑定。情老师在课堂上讲一下。