php mysql curd_写一个接口, 完成基本的数据表操作:CURD

本文详细介绍了如何使用PHP实现一个基本的数据库访问接口,包括创建(CREATE)、读取(READ)、更新(UPDATE)和删除(DELETE)操作。实例展示了如何通过PDO连接数据库,执行SQL语句,并提供了完整的CRUD操作方法。
摘要由CSDN通过智能技术生成

实例

//定义一个数据库访问接口:CURD,增删改查

interface iCurd

{

//增加数据

public function create($data);

//读取数据

public function read();

//更新数据

public function update($data,$where);

//删除数据

public function delete($where);

}

//创建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语句

//    INSERT INTO 'staff'(字段列表) VALUES(值列表)

$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)

{

//获取数组的键名组成的数组

$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();

}

}

// 实例化Db类

$dsn = 'mysql:host=localhost;dbname=php';

$user = 'root';

$password = 'root';

$db = new Db($dsn, $user, $password);

// 读取 read()

foreach ($db->read('staff_id, name, position', 'age > 50') as $item) {

print_r($item); echo '
';

}

echo '


';

//新增 creat()

//$data = [

//    'name'=>'小苹果',

//    'age'=>10,

//    'sex'=>1,

//    'position'=>'果园明星',

//    'mobile'=>'13666668888',

//    'hiredate'=>time()

//];

//$res = $db->create($data);

//echo '成功新增'.$res['count'].'条记录,最新记录的主键ID是: '.$res['id'];

echo '


';

//更新 update()

//$where='staff_id=22';

//$data=[

//    'age'=>20,

//    'position'=>'树林里的'

//];

//echo '成功的更新了'.$db->update($data,$where).'条记录';

echo '


';

//删除 delete()

$where='staff_id=22';

echo '成功的删除了'.$db->delete($where).'条记录';

运行实例 »

点击 "运行实例" 按钮查看在线实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值