PHP数据库CURD接口与实现(接口实战)
生活随笔
收集整理的這篇文章主要介紹了
PHP数据库CURD接口与实现(接口实战)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
接口實戰的小案例:
<?phpnamespace _0802;// 接口實戰的小案例 // 定義一個接口, 實現數據庫的常用操作: 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, $username, $password, $table){$this->pdo = new \PDO($dsn, $username, $password);$this->table = $table;}// 增加數據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);// die($stmt->debugDumpParams());// 返回新增數據, 新增記錄的id也返回return ['count' => $stmt->rowCount(),'id' => $this->pdo->lastInsertId()];}// 讀取數據public function read($fileds = '*' , $where='', $limit = '0, 5'){// 設置查詢條件$where = empty($where) ? '' : ' WHERE ' . $where;$limit = ' LIMIT ' . $limit;$sql = 'SELECT '. $fileds . ' FROM ' . $this->table. $where . $limit;$stmt = $this->pdo->prepare($sql);$stmt->execute();// 用二維數組返回所有數據return $stmt->fetchAll(\PDO::FETCH_ASSOC);}// 更新數據public function update($data, $where){// 難點在于SET參數$keyArr = array_keys($data);$set = '';// 遍歷這個字段列表, 拼裝 setforeach ($keyArr as $value) {$set .= $value . '= :' . $value. ',';}//age= :age,position= :position,把最后一個逗號刪除$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=127.0.0.1;dbname=php'; $username = 'root'; $password = 'a757871402'; $table = 'staff'; $db = new Db($dsn, $username, $password, $table);// 新增操作 $data = ['name'=> '德斌','age'=> 23,'sex' => 1,'position' => '駙馬','mobile'=> '1388888888','hiredate' => time() ];//$res = $db->create($data); //echo '成功的新增了 '. $res['count']. '條記錄, 新增的記錄的ID是: '. $res['id'];echo '<hr>';// 查詢操作 foreach ($db->read() as $item) {print_r($item); echo '<br>'; }echo '<hr>';// 查詢操作 foreach ($db->read('staff_id, name,position, age', 'age > 50') as $item) {print_r($item); echo '<br>'; }// 更新操作 $data = ['age' => 40,'position' => '總裁' ];//$where = 'staff_id = 22';//echo '成功的更新了: ' . $db->update($data, $where) . ' 條記錄';echo '<hr>';// 刪除操作 $where = 'staff_id = 22';echo '成功的刪除了: ' . $db->delete($where) . ' 條記錄';數據庫
-- Adminer 4.7.2 MySQL dumpSET NAMES utf8; SET time_zone = '+00:00'; SET foreign_key_checks = 0; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';DROP TABLE IF EXISTS `staff`; CREATE TABLE `staff` (`staff_id` int(3) NOT NULL AUTO_INCREMENT COMMENT '主鍵',`name` varchar(30) NOT NULL COMMENT '姓名',`age` tinyint(3) unsigned NOT NULL DEFAULT '25' COMMENT '年齡',`sex` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '1:男0:女',`position` varchar(20) NOT NULL COMMENT '職位',`mobile` char(11) NOT NULL COMMENT '手機號',`hiredate` int(10) unsigned NOT NULL COMMENT '入職時間',PRIMARY KEY (`staff_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `staff` (`staff_id`, `name`, `age`, `sex`, `position`, `mobile`, `hiredate`) VALUES (1, '侯亮平', 43, 1, '反貪局長', '13576543210', 851356800), (2, '祁同偉', 46, 1, '公安廳長', '13023458765', 1420041600), (3, '高育良', 57, 1, '政法書記', '15678789933', 981734400), (4, '李達康', 51, 1, '市委書記', '13088856222', 1336838400), (5, '沙瑞金', 56, 1, '省委書記', '18956490987', 1179158400), (6, '趙東來', 41, 1, '公安局長', '15999999999', 1375891200), (7, '高小琴', 36, 0, '山水莊園', '18967678877', 1452528000), (8, '陳清泉', 48, 1, '外語學霸', '13023487666', 1320940800), (9, '鐘小艾', 38, 0, '反貪總局', '13576588333', 1318348800), (10, '陸亦可', 35, 0, '調查處長', '13099912345', 1218297600), (11, '小龍女', 29, 0, '古墓掌門', '13989897754', 1378656000), (12, '韋小寶', 24, 1, '太監總管', '15709887875', 1560927140), (13, '郭靖', 44, 1, '中原大俠', '13576543422', 1560927140), (14, '滅絕師太', 68, 0, '峨眉掌門', '18909887655', 1481472000), (15, '李莫愁', 37, 0, '赤煉仙子', '13878665439', 1481472000), (16, '洪七公', 75, 1, '丐幫幫主', '13507665428', 1234567890), (17, '楊康', 32, 1, '金國王爺', '15805512348', 1560993700), (18, '梅超風', 49, 0, '女魔頭', '17765443256', 1560993815), (19, '金輪法王', 52, 1, '蒙古國師', '13709887878', 1560994207), (20, '老頑童', 68, 1, '全真教師叔', '13688776548', 1560995043), (21, '歐陽克', 37, 1, '大淫賊', '19988776676', 1560993700);總結
以上是生活随笔為你收集整理的PHP数据库CURD接口与实现(接口实战)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Maven的依赖与最佳配置(转载自Mav
- 下一篇: php txt投票功能,php查询操作实