博主信息
笑颜常开的博客
博文
61
粉丝
0
评论
0
访问量
27930
积分:0
P豆:211.5

接口实战(数据库的CURD操作)

2019年04月03日 20:19:41阅读数:621博客 / 笑颜常开的博客/ PHP开发

<?php
interface iCurd{
//    增加数据
   public function create($data);


//读取数据
   public function read();
//更新数据
   public function update($data,$where);
//删除数据
   public function delete($where);
}
//创建工作类Db,来实现iCurd接口

// 创建Db类, 实现iCurd接口,完成基本的数据库操作
class Db implements iCurd
{
   //数据库的连接对象
   protected $pdo = null;
   // 数据表名
   protected $table;
   // 构造方法: 连接数据库,并设置默认数据表名称
   public function __construct($dsn, $user, $password, $table='staff')
   {
       $this->pdo = new PDO($dsn, $user, $password);
       $this->table = $table;
   }
   // 读取
   public function read($fields='*', $where='', $limit='0, 5')
   {
       // 设置查询条件
       $where = empty($where) ? '' : ' WHERE ' . $where;
       // 设置显示数量
       $limit = ' LIMIT ' . $limit;

       // 预处理查询操作
       $sql = 'SELECT '.$fields.' FROM '.$this->table.$where.$limit;
       $stmt = $this->pdo->prepare($sql);
       $stmt->execute();

       // 返回二维数组表示的查询结果集
       return $stmt->fetchAll(PDO::FETCH_ASSOC);
   }
   // 新增, 参数是数组: 新记录的键值对
   public function create($data)
   {
       // 字段列表
       $fields = ' (name,age,sex,position,mobile,hiredate)';
       // 值列表
       $values = '(:name,:age,:sex,:position,:mobile,:hiredate)';
       // 创建SQL语句
       $sql = 'INSERT INTO '.$this->table.$fields.' VALUES '.$values;

       // 预处理执行新增操作
       $stmt = $this->pdo->prepare($sql);
       $stmt->execute($data);

       // 返回新增数量, 新增记录的ID组成的数组
       return [
           'count'=>$stmt->rowCount(),
           'id'=>$this->pdo->lastInsertId()
       ];
   }
   // 更新, 为了数据安全, 不允许无条件更新
   public function update($data, $where)
   {
       // 难点在于SET 参数的处理上,利用传入的$data数组,进行拆装

       // 获取数组的键名组成的数组
       $keyArr = array_keys($data);
       $set = '';
       // 遍历键名表示的字段列表,拼装预处理需要的sql语句,注意占符符的表示
       foreach ($keyArr as $value) {
           $set .= $value . ' = :' .$value. ', ';
       }
       // 去掉最后一个逗号, 注意每个逗号后有一个空格,去除时也要带上这个空格
       $set = rtrim($set,', ');

       // 预处理执行更新操作
       $sql = 'UPDATE '.$this->table.' SET '.$set .' WHERE ' .$where;
       $stmt = $this->pdo->prepare($sql);
       $stmt->execute($data);

       // 返回被更新的记录数量
       return $stmt->rowCount();
   }
   // 删除: 与更新一样, 这也是危险的写操作, 不允许无条件删除
   public function delete($where)
   {
       // 预处理执行删除操作
       $sql = 'DELETE FROM '.$this->table.' WHERE '.$where;
       $stmt = $this->pdo->prepare($sql);
       $stmt->execute();
       return $stmt->rowCount();
   }
}
//客户端的测试代码
$dsn='mysql:host=127.0.0.1;dbname=php';
$user='root';
$password='root';
$db=new Db($dsn,$user,$password);
foreach ($db->read() as $item){
   print_r($item);echo '<br>';
}
echo '<hr>';

//$data=[
//    'name'=>'郭靖',
//    'age'=>30,
//    'sex'=>1,
//    'position'=>'金刀驸马',
//    'mobile'=>'07916586437',
//    'hiredate'=>time()
//];
//$res=$db->create($data);
//echo '成功地新增了'.$res['count'].'条记录,最新记录的id是:'.$res['id'];
//echo '<hr>';

//更新
//$data=['age'=>40,'position'=>'抗金英雄'];
//$where='id=19';
//echo '成功地更新了:'.$db->update($data,$where).'条记录';
$where='id=19';
echo '成功地删除了:'.$db->delete($where).'条记录';

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • access教程:本文为大家分享了java现连access并读取,具有一定参考价值,希望能够帮助到大家。
    这篇文章主要介绍了PHP连MySQL代码例解析,对大家学习或者工具有一定参考学习价值,需要朋友可以参考下。
    用于各种软件是:管理系统;管理系统能直
    php curd专业术语,其意思分别是:1、Create,增加;2、update,更新;3、Read,读取;4、Delete,删除
    已经学习了MySQL各种,如创建表、添加各种约束、产看表结构、以及修改和删除表。给出一个演练,全面复习一下基本基础。
    网络上db是:1、,是按照结构来组织、存储和管理;2、一种元素符号;3、;4、分贝;5、汇编语言中命令,用来定义占用字节
    测试测试内容:1、测试;2、健壮性,容错性和恢复能力测试;3、安全测试;4、性能测试;5、容量测试;6、对象测试;7、测试;8、增加
    管理分为写和查询。写,即利用PDO增删改过程中要考虑到SQL本身可能出现错误处理,以及对结果处理。
    例是程序,是位于用户和系统之间一层管理软件,是访问通道;用户对做任何,包括定义、查询、维护、运行控制等等都是在例下进行,应用程序只有通过例才能和打交道
    php现用户注册登陆方法:首先创建及表单;然后使用php文件中着修改php文件现登录注册;最后进一步完善完成登录即可。
    mysql语句注入式错误就是利用某些外部将用户插入到SQL语言当中,从而达到入侵乃至系统
    MySQL触发器用是:1、使用户具有某种权利;2、跟踪用户对;3、对中相关表进行连环更新;4、时复制表中;5、自动计算值。
    备份可分为:热备份、冷备份和温备份。热备份可以在运行中直备份,对正在运行没有任何影响。冷备份必须在停止情况下进行备份,读写不能执行。
    ​下面由thinkphp教程栏目给大家介绍ThinkPHP之连 ,希望对需要朋友有所帮助!
    PHP中连是较为日常,但是一般都比较重要,为了避免误完整性破坏,所以我们利用了rollBack()方法,避免了一些误,本文就带大家一起来看一看PDO::rollBack
    上篇文章给大家介绍了《PHP高级-文件上传类成员属性有哪些?》,本文继续给大家介绍如何用PHP进行类有一定参考价值,有需要朋友可以参考一下,希望对大家有所帮助。
    php关闭命令是“mysqli_close()”。
    php验证跳转方法:首先创建login.html文件;然后创建doLogin.php文件;着进行判空,通过后进行验证码验证;最后再进行验证即可。
    在php中,pdo是PHP为访问定义一个轻量级、一致性;它提供了一个访问抽象层,这样无论你使用什么,都可以通过同一函执行查询和获取,大大简化了,并能够屏蔽不同之间差异
    Java连MySQL方法:首先下载解压得到jar文件,并在对应项目中导入该文件;然后添加JDBC;着在Mysql中进行建表,和添加;最后连并读取即可。