<?php
namespace demo;
interface iCurd
{
public function create($data);
public function delete($where);
public function update($data,$where);
public function select();
}
class DB implements iCurd
{
protected $pdo = null;
protected $table;
public function __construct($dsn,$user,$pwd,$table)
{
$this->pdo = new \PDO($dsn, $user, $pwd);
$this->table = $table;
}
public function create($data)
{
$fields = ' (name, momey, info) ';
$values = ' (:name, :momey, :info) ';
$sql = 'INSERT INTO '.$this->table.$fields. ' VALUES ' . $values;
$stmt = $this->pdo->prepare($sql);
$stmt->execute($data);
return [
'count' => $stmt->rowCount().'条数据增加成功',
'id' => 'ID为'.$this->pdo->lastInsertId()
];
}
public function delete($where)
{
$sql = 'DELETE FROM ' .$this->table . ' WHERE ' .$where;
$stmt = $this->pdo->prepare($sql);
$stmt->execute();
return $stmt->rowCount();
}
public function update($data,$where)
{
$keyArr = array_keys($data);
$set = '';
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 select($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 get_fields() {
$fields = [];
$sql="SHOW COLUMNS FROM {$this->table}";
$stmt = $this->pdo->prepare($sql);
$stmt->execute();
$fields=[];
foreach ($stmt->fetchAll(\PDO::FETCH_ASSOC) as $v){
$fields[]=$v['Field'];
}
return $fields;
}
public function field_exists($field) {
$fields = $this->get_fields($this->table);
return in_array($field, $fields)?'字段'.$field.'存在':'不存在';
}
}
$dsn='mysql:host=127.0.0.1;dbname=demo';
$user='root';
$pwd='root';
$table='test';
$db=new DB($dsn,$user,$pwd,$table);
echo '<pre>';
var_dump($db->create(['name'=>'张三','momey'=>'8888','info'=>'测试张三']));