增刪改查類

<?php
// 所有數據表的基類
abstract class Model {protected $tableName = "";protected $pdo = "";protected $sql="";function __construct() {$pdo = new PDO( "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USERNAME, DB_PASSWORD );$pdo->exec ( "set names " . DB_CHARSET );$this->pdo = $pdo;}function updatetone($where=''){$sql = 'UPDATE ' . $this->tableName . ' SET clicknum=clicknum+1'. ($where == NULL ? $where : ' WHERE ' . $where);$this->sql=$sql;return $this->pdo->exec ( $sql );}/*** 獲取總記錄數 select count(*) as num from news where cateid=5*/function count($where=""){$where = empty($where) ? "" : " where ".$where;$sql="select count(*) as num from {$this->tableName} $where";$this->sql=$sql;$pdoS=$this->pdo->query($sql);$arr=$pdoS->fetch(PDO::FETCH_ASSOC);return $arr['num'];}/*** 增加* array $arr=array('字段名'=>值,....) exp:array('username'=>'xiaowang','password'=>'123456')*/function insert($arr) {// 把數組轉化成sql語句// sql語句是php向mysql,告訴她給我寫一條記錄進表// insert into 表名(字段列表) value(數據列表)// insert into adminuser(username,password) value('xiaowang','123456')$fiedList = "";$valueList = "";foreach ( $arr as $k => $v ) {$fiedList .= "," . $k;$valueList .= ",'" . $v . "'";}$fiedList = substr ( $fiedList, 1 );$valueList = substr ( $valueList, 1 );// 拼sql$sql = "insert into {$this->tableName}({$fiedList}) value({$valueList})";$this->sql=$sql;// 執行$re = $this->pdo->exec ( $sql );if ($re) {// 返回主鍵idreturn $this->pdo->lastInsertId ();} else {return false;}}// 查詢function findByPk($id) {// 獲取表的主鍵名稱 desc 表名$pdoS = $this->pdo->query ( "desc " . $this->tableName );$arr = $pdoS->fetchAll ( PDO::FETCH_ASSOC );foreach ( $arr as $v ) {if ($v ['Key'] == 'PRI') {$fieldName = $v ['Field'];break;}}$sql = "select * from {$this->tableName} where $fieldName=$id";$this->sql=$sql;$pdoS = $this->pdo->query ( $sql );return $pdoS->fetch ( PDO::FETCH_ASSOC );}/*** 查詢多條記錄* array $arr 用來管理查詢語句的子句* array('limit'=>'0,5','where'=>"id=5")*/function findAll($arr = array()) {// select 字段列表 from 表名// where 條件 group by 字段 having 條件 order by 字段 desc|asc limit start,length// select 字段列表 from 表1 as t1 join 表2 as t2 on t1.字段=t2.字段 join 表3 as t3 on t2.字段=t3.字段// 拼sql語句$field = isset ( $arr ['field'] ) ? $arr ['field'] : "*";$where = isset ( $arr ['where'] ) ? " where " . $arr ['where'] : '';$group = isset ( $arr ['group'] ) ? " group by " . $arr ['group'] : '';$having = isset ( $arr ['having'] ) ? " having " . $arr ['having'] : "";$order = isset ( $arr ['order'] ) ? " order by " . $arr ['order'] : '';$limit = isset ( $arr ['limit'] ) ? " limit " . $arr ['limit'] : '';$alias = isset ( $arr ['alias'] ) ? " as " . $arr ['alias'] : "";$join = isset ( $arr ['join'] ) ? " join " . $arr ['join'] : '';$sql = "select $field from {$this->tableName} $alias $join $where $group $having $order $limit";$this->sql=$sql;$pdoS = $this->pdo->query ( $sql );if (is_object ( $pdoS )) {return $pdoS->fetchAll ( PDO::FETCH_ASSOC );} else {return array ();}}function delete($where = NULL) {$sql = 'DELETE FROM ' . $this->tableName . ($where == NULL ? $where : ' WHERE ' . $where);$this->sql=$sql;return $this->pdo->exec ( $sql );}function update($bind, $where = NULL) {$set = NULL;foreach ( $bind as $field => $value ) {if (is_null ( $set )) {$set .= $field . "='" . $value . "'";} else {$set .= ',' . $field . "='" . $value . "'";}}$sql = 'UPDATE ' . $this->tableName . ' SET ' . $set . ($where == NULL ? $where : ' WHERE ' . $where);$this->sql=$sql;return $this->pdo->exec ( $sql );}function query($sql){//判斷是更新語句,還是查詢語句if(preg_match("/^select/i",$sql)){$pdoS=$this->pdo->query($sql);return $pdoS->fetchAll(PDO::FETCH_ASSOC);}else{return $this->pdo->exec($sql);}}function getLastSql(){return $this->sql;}
}

  

轉載于:https://www.cnblogs.com/zst062102/p/6089473.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394584.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394584.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394584.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html網頁和cgi程序編程,CGI 編程方式學習

1.大家都知道CGI是通用網關接口&#xff0c;可以用來編寫動態網頁。而且CGI可以用很多種語言來寫&#xff0c;用perl來編寫最常見&#xff0c;我這里就是用perl來編寫做例子。講到編寫CGI編程方式&#xff0c;編寫CGI有兩程編程風格。(1)功能型編程(function-oriented style)這…

20175305張天鈺 《java程序設計》第四周課下測試總結

第四周課下測試總結 錯題 某方法在父類的訪問權限是public&#xff0c;則子類重寫時級別可以是protected。 A .true B .false 正確答案&#xff1a;B 解析&#xff1a;書P122&#xff1a;子類不允許降低方法的訪問權限&#xff0c;但可以提高訪問權限。 復雜題&#xff08;易錯…

強化學習q學習求最值_通過Q學習更深入地學習強化學習

強化學習q學習求最值by Thomas Simonini通過托馬斯西蒙尼(Thomas Simonini) 通過Q學習更深入地學習強化學習 (Diving deeper into Reinforcement Learning with Q-Learning) This article is part of Deep Reinforcement Learning Course with Tensorflow ??. Check the syl…

BZOJ 1113: [Poi2008]海報PLA

1113: [Poi2008]海報PLA Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1025 Solved: 679[Submit][Status][Discuss]Description N個矩形,排成一排. 現在希望用盡量少的矩形海報Cover住它們. Input 第一行給出數字N,代表有N個矩形.N在[1,250000] 下面N行,每行給出矩形的長…

Python自動化運維之常用模塊—OS

os模塊的作用&#xff1a;  os&#xff0c;語義為操作系統&#xff0c;所以肯定就是操作系統相關的功能了&#xff0c;可以處理文件和目錄這些我們日常手動需要做的操作&#xff0c;就比如說&#xff1a;顯示當前目錄下所有文件/刪除某個文件/獲取文件大小……  另外&#…

opengl三維圖形圖形顏色_【圖形學基礎】基本概念

右手坐標系。類似OpenGL遵循的右手坐標系&#xff1a;首先它是三維的笛卡爾坐標系&#xff1a;原點在屏幕正中&#xff0c;x軸從屏幕左向右&#xff0c;最左是-1&#xff0c;最右是1&#xff1b;y軸從屏幕下向上&#xff0c;最下是-1&#xff0c;最上是1&#xff1b;z軸從屏幕里…

xp職稱計算機考試題庫,2015年職稱計算機考試XP題庫.doc

2015年職稱計算機考試XP題庫.doc (7頁)本資源提供全文預覽&#xff0c;點擊全文預覽即可全文預覽,如果喜歡文檔就下載吧&#xff0c;查找使用更方便哦&#xff01;9.90 積分&#xfeff;2015年職稱計算機考試XP題庫職稱計算機考試考點精編&#xff1a;工具欄的設置與操作XP中將…

Java基礎學習-Path環境變量的配置

1.為什么要進行Path環境變量的配置程序的編譯和執行需要使用到javac和java命令&#xff0c;所以只能在bin目錄下寫程序&#xff0c;而實際開發中&#xff0c;我們不可能將程序全部寫到bin目錄下&#xff0c;所以我們不許讓javac和java命令在任意目錄下都能夠被訪問。這時候&…

rails 共享變量_如何將Rails實例變量傳遞給Vue組件

rails 共享變量by Gareth Fuller由Gareth Fuller 如何將Rails實例變量傳遞給Vue組件 (How to pass Rails instance variables into Vue components) I’m currently working with a legacy Rails application. We are slowly transitioning the front-end from Rails views to…

Leetcode: Counting Bits

Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1s in their binary representation and return them as an array.Example: For num 5 you should return [0,1,1,2,1,2].Follow up:It is very easy to c…

第一個python爬蟲_Python爬蟲01——第一個小爬蟲

Python小爬蟲——貼吧圖片的爬取 在對Python有了一定的基礎學習后&#xff0c;進行貼吧圖片抓取小程序的編寫。 目標&#xff1a; 首先肯定要實現圖片抓取這個基本功能 然后實現對用戶所給的鏈接進行抓取 最后要有一定的交互&#xff0c;程序不能太傻吧 一、頁面獲取 要讓pytho…

Mac下,如何把項目托管到Github上(Github Desktop的使用)

在上一篇中&#xff0c;詳細講解了使用X-code和終端配合上傳代碼的方法&#xff0c;這種方法比較傳統&#xff0c;中間會有坑&#xff0c;英文看起來也費勁&#xff0c;不過Github官方提供了一個Mac版的客戶端&#xff0c;如下圖&#xff1a; 附上下載鏈接&#xff1a;傳送門 下…

計算機網絡英文面試題,計算機網絡面試題整理

GET和POST的區別&#xff1f;GET和POST方法沒有實質上區別&#xff0c;只是報文格式不同。GET和POST是HTTP協議中的兩種請求方法。而 HTTP 協議是基于 TCP/IP 的應用層協議&#xff0c;無論 GET 還是 POST&#xff0c;用的都是同一個傳輸層協議&#xff0c;所以在傳輸上&#x…

利用遞歸求某數的階乘——C/C++

#include<stdio.h>int getFactorial(int n) {if(n0)return 1;else return n*getFactorial(n-1); }int main() {int n,res;scanf("%d",&n);res getFactorial(n);printf("%d",res);return 0; } 轉載于:https://www.cnblogs.com/daemon94011/p/106…

intern_充分利用Outreachy Intern申請流程

internby Joannah Nanjekye喬安娜南耶基(Joannah Nanjekye) 充分利用Outreachy Intern申請流程 (Get the most out of your Outreachy Intern application process) Outreachy gives three-month paid internships for persons that are underrepresented in tech. Interns ar…

Put-Me-Down項目Postmortem2

一.設想和目標二.計劃三.資源四.變更管理五.設計/實現六.測試/發布總結一.設想和目標 1. 我們的軟件要解決什么問題&#xff1f;是否定義得很清楚&#xff1f;是否對典型用戶和典型場景有清晰的描述&#xff1f; 我們的軟件要幫助低頭族控制使用手機時間。功能很明確&#xff0…

大數據實驗報告總結體會_建設大數據中臺架構思考與總結

簡介本文介紹完善的大數據中臺架構了解這些架構里每個部分的位置&#xff0c;功能和含義及背后原理及應用場景。幫助技術與產品經理對大數據技術體系有個全面的了解。數據中臺定義&#xff1a;集成離線數倉與實時數倉&#xff0c;并以多數據源統一整合采集到kafka,再通過kafka進…

半數集問題

給定一個自然數n&#xff0c;由n開始可以依次產生半數集set(n)中的數如下&#xff1a; (1) n ∈set(n)&#xff1b; (2) 在n的左邊加上一個自然數&#xff0c;但該自然數不能超過最近添加的數的一半&#xff1b; (3) 按此規則進行處理&#xff0c;直到不能再添加自然數為止。…

微型計算機控制理論基礎答案,微型計算機控制技術試卷c

微型計算機控制技術試卷a潘新民 微型計算機控制技術實用教程微型計算機控制技術試卷C一、選擇題(本題共10小題&#xff0c;每小題 1.5分&#xff0c;共15分)1. DAC0832的VREF接-5V&#xff0c;IOUT1接運算放大器異名端&#xff0c;輸入為1000000B &#xff0c;輸出為( )。A. 5V…

aws lambda_四處奔走:初學者遇到AWS Lambda

aws lambdaby Janaka Bandara通過Janaka Bandara 四處奔走&#xff1a;初學者遇到AWS Lambda (Running around the block: a beginner meets AWS Lambda) Computing! It sure has a very long, vivid (and sometimes awkward) history. Some key milestones include:計算&…