建立一个php 基础类
生活随笔
收集整理的這篇文章主要介紹了
建立一个php 基础类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在些PHP文件的時候,一般首先都是要先寫一下基礎類:
主要包括以下幾個方面:
1.服務器的鏈接:包括主機,用戶名,密碼
2.數據庫的選擇:要操作哪個數據庫
3.字符集的設置:設置什么樣的編碼
4.查詢數據庫:4.1 包括查詢所有數據;4.2 查詢某一行數據 ;4.3 查詢某一列數據;
5.數據庫的添加:添加一行或多行數據
6.數據庫的更新:更新一行或多行數據
7.數據庫的刪除:刪除一行或多行數據
?
開始建立一個基礎類Mysql:命名為Mysql.class.php
1 <?php 2 class Mysql{ 3 private $dbHost; //服務器 4 private $dbUser; //用戶名 5 private $dbPwd;// 密碼 6 private $dbName; //數據庫名稱 7 // __construct 函數是一個php魔術方法,在實例化的時候,會最先執行__construct()方法 8 public function __construct($_dbHost,$_dbUser,$_dbPwd,$_dbName){ 9 $this->dbHost = $_dbHost; 10 $this->dbUser = $_dbUser; 11 $this->dbPwd = $_dbPwd; 12 $this->dbName = $_dbName; 13 $link = $this->connect(); // 服務器連接 14 if($link){ 15 $this->selectDb(); //連接成功,則選擇數據庫 16 $this->setCode(); //連接成功,則設置字符集編碼 17 }else{ 18 die(mysql_error()); // 連接失敗,則顯示數據庫連接失敗的信息 19 }; 20 }; 21 // mysql 語句執行方法 22 public function query($sql){ 23 return mysql_query($sql); 24 }; 25 // 數據庫連接方法 26 public function connect(){ 27 return mysql_connect($this->dbHost,$this->dbUser,$this->dbPwd); 28 }; 29 // 數據庫選擇方法 30 public function selectDb(){ 31 mysql_select_db($this->dbName); 32 }; 33 // 字符集編碼設置方法 34 public function setCode(){ 35 $this->query("set names utf8"); 36 }; 37 // 獲取所有數據方法 38 public function getAll($sql){ 39 $res = $this->query($sql); // 查詢數據庫出來的數據,是一個資源類型的,所以必須使用函數進行轉化, 40 // 一般有三個函數進行mysql數據庫資源的數據轉化:一個是 mysql_fetch_row() ,返回的是一個數字索引的數組,可以使用數字索引進行調用; 41 // 一個是mysql_fetch_assoc() ,返回的是關聯索引的數字,只能使用關聯索引進行調用,關聯索引就是字段的數據變字段的名稱 42 // 還有一個是mysql_fetch_array(),返回的是數字索引和關聯索引組成的數組,所以可以使用數組索引進行調用,也可以使用關聯索引進行調用;相當于mysql_fetch_row()和mysql_fetch_assoc()的集合 43 $list = array(); // 這里設定一個數組,用來接收從數據庫中返回的數據, 44 // mysql_fetch_assoc()返回的是一個指針,每次只是返回一條數據,指針即指向返回的這條數據,當次條數據被返回以后,指針會指向下一條數據,當數據取完后,指針指向null 45 // 所以此處使用while進行循環 46 while($row = mysql_fetch_assoc($res)){ 47 $list[] = $row ; // 當不對數組設置索引,就進行賦值的話,會自動將賦值的項添加到數組的最后面 48 // array_push($list,$row); // array_push() 函數是對數組進行入棧處理,效果和 $list[] = $row 是一樣的 49 }; 50 return $list; 51 }; 52 //獲取一行數據 53 public function getRow($sql){ 54 $res = $this->query($sql); 55 //這里獲取一行數據,不需要對數據進行數組處理,因為只有一行數據,所以可以直接返回 56 return mysql_fetch_assoc($res); 57 }; 58 // 獲取某一列數據 59 public function getCol($sql){ 60 $res = $this->query($sql); 61 $row = mysql_fetch_assoc($res); 62 return $row[0]; 63 }; 64 public function delete($sql){ 65 // 刪除數據,直接執行$sql 的刪除語句就行了 66 $this->query($sql); 67 }; 68 69 //插入 70 // INSERT INTO message( title, content ) VALUES ( '星星', '小星星' ); 71 // 產品經理 ----> 痛點 72 /* 73 add( array( 74 'title' => '星星', 75 'content' => '小星星' 76 ), 'message' ); 77 */ 78 79 // 添加(或者說插入)數據一條數據:有兩個參數,一個是需要插入的表,另一個是插入的數據,因為有可能是插入一個字段,也可能是插入兩個或者多個字段, 80 // 所以使用數組來存檔要插入的數據,這樣,無論插入幾個字段,都使用同一個方法就可以了 81 public function add($tbName,$data){ 82 $sql = "insert into {$tbName} ("; 83 // implode() 將數組鏈接成字符串,explode() 84 $sql .= implode(",",array_keys($data))."values ("; 85 // 值要使用單引號括起來 86 $sql .= implode(",'",array_values($data))."')"; 87 return $this->query($sql); 88 }; 89 //數據一條數據:有三個參數,一個是需要更新的表,一個是更新的數據,另一個是更新條件 90 public function update($tbName,$data,$condition){ 91 $sql = "update {$tbName} set"; 92 foreach($data as $key => $value){ 93 // 值$value 要使用單引號括起來 94 $sql .= {$key}."='".{$value}."',"; 95 } 96 // 但是這樣處理的結果:是在語句的最后面多了一個逗號,例如以下語句 97 // UPDATE message SET title = 'hello', content = '你好', 98 // 既然多了一個逗號,那在最后把逗號去掉就可以了,使用substr(string,start,end)函數: 99 // 有三個參數,一個是要處理的字符串string,一個是起始位置start,一個是結束位置end 位置參數如果為負,則從右面開始算 100 $sql = substr($sql,0,-1); 101 $sql .= " ".$condition; 102 return $this->query($sql); 103 }; 104 } 105 $mysql = new Mysql("localhost","root","root","message"); 106 ?>
?
寫好了基礎的類,就可以進行調用了
再寫一個Msgmodel?類:
1 <?php 2 class MsgModel{ 3 public $db; 4 public $tbName = "message"; 5 public function __construct(&$dbObj){ 6 $this->db = $dbObj; 7 } 8 // 添加一條Msg數據 9 public function msgAdd($data){ 10 return $this->db->add($this->tbName,$data); 11 } 12 // 添加一條Msg 所有數據 13 public function getMsgAll(){ 14 $sql = "SELECT * FROM {$this->tbName} ORDER BY time DESC"; 15 return $this->db->getAll($sql); 16 } 17 18 // 獲取Msg的所有條數 19 public function getMsgCol(){ 20 $sql = "SELECT COUNT(*) FROM {$this->tbName}"; 21 return $this->db->getCol($sql); 22 } 23 public function getMsgColBycatId($catId){ 24 if($catId == 0){ 25 return $this->getMsgCol(); 26 }else{ 27 $sql = "SELECT COUNT(*) FROM {$this->tbName} WHERE cat_id = {$catId}"; 28 return $this->db->getCol($sql); 29 } 30 31 } 32 public function getMsgList($p,$pageSize){ 33 $sql = "SELECT * FROM {$this->tbName} ORDER BY time DESC "; 34 $sql .= " LIMIT ".($p-1)*$pageSize.",".$pageSize; 35 36 return $this->db->getAll($sql); 37 } 38 public function getMsgListByCatId($p,$pageSize,$catId){ 39 if($catId==0){ 40 return $this->getMsgList($p,$pageSize); 41 }else{ 42 $sql = "SELECT * FROM {$this->tbName} "; 43 $sql .="WHERE cat_id = {$catId} ORDER BY time DESC "; 44 $sql .= " LIMIT ".($p-1)*$pageSize.",".$pageSize; 45 return $this->db->getAll($sql); 46 } 47 } 48 public function getMsgById($msgId){ 49 $sql = "SELECT * FROM {$this->tbName} WHERE message_id = $msgId"; 50 return $this->db->getRow($sql); 51 } 52 public function getMsgRandId(){ 53 $sql = "SELECT * FROM {$this->tbName} ORDER BY RAND() LIMIT 1"; 54 $row = $this->db->getRow($sql); 55 return $row['message_id']; 56 } 57 public function getPrevMsgId($msgId){ 58 $sql = "SELECT * FROM {$this->tbName} WHERE message_id < {$msgId}"; 59 $sql .= " ORDER BY message_id DESC LIMIT 1"; 60 $row = $this->db->getRow($sql); 61 return $row['message_id']; 62 } 63 public function getNextMsgId($msgId){ 64 $sql = "SELECT * FROM {$this->tbName} WHERE message_id > {$msgId}"; 65 $sql .= " ORDER BY message_id ASC LIMIT 1"; 66 $row = $this->db->getRow($sql); 67 return $row['message_id']; 68 } 69 public function getMinMsgId(){ 70 $sql = "SELECT * FROM {$this->tbName} ORDER BY message_id ASC LIMIT 1"; 71 $row = $this->db->getRow($sql); 72 return $row['message_id']; 73 } 74 public function getMaxMsgId(){ 75 $sql = "SELECT * FROM {$this->tbName} ORDER BY message_id DESC LIMIT 1"; 76 $row = $this->db->getRow($sql); 77 return $row['message_id']; 78 } 79 80 } 81 ?>
?
轉載于:https://www.cnblogs.com/huanying2015/p/8414094.html
總結
以上是生活随笔為你收集整理的建立一个php 基础类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html知识点回顾
- 下一篇: 3.request response