最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一個基于PDO的數(shù)據(jù)庫操作類(新) 一個PDO事務(wù)實例

 更新時間:2011年07月03日 21:59:47   作者:  
原先已經(jīng)寫過一個PDO的數(shù)據(jù)庫操作類,這次只是在原先基礎(chǔ)上進(jìn)行修改。
復(fù)制代碼 代碼如下:

<?php
/*
* 作者:胡睿
* 日期:2011/03/19
* 電郵:hooray0905@foxmail.com
*
* 20110319
* 常用數(shù)據(jù)庫操作,如:增刪改查,獲取單條記錄、多條記錄,返回最新一條插入記錄id,返回操作記錄行數(shù)等
* 20110630
* 整體修改方法,合并部分參數(shù)
* 規(guī)范代碼,一個方法里只有1個return語句
*/
/*
參數(shù)說明
int $debug 是否開啟調(diào)試,開啟則輸出sql語句
int $mode 0 返回數(shù)組
1 返回單條記錄
2 返回行數(shù)
string $table 數(shù)據(jù)庫表
string $fields 需要查詢的數(shù)據(jù)庫字段,允許為空,默認(rèn)為查找全部
string $sqlwhere 查詢條件,允許為空
string $orderby 排序,允許為空,默認(rèn)為id倒序
*/
function hrSelect($debug, $mode, $table, $fields="*", $sqlwhere="", $orderby="id desc"){
global $pdo;
if($debug){
if($mode == 2){
echo "select count(*) from $table where 1=1 $sqlwhere order by $orderby";
}elseif($mode == 1){
echo "select $fields from $table where 1=1 $sqlwhere";
}else{
echo "select $fields from $table where 1=1 $sqlwhere order by $orderby";
}
exit;
}else{
if($mode == 2){
$rs = $pdo->query("select count(*) from $table where 1=1 $sqlwhere order by $orderby");
$return = $rs->fetchColumn();
}elseif($mode == 1){
$rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere");
$return = $rs->fetch();
}else{
$rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
$return = $rs->fetchAll();
}
return $return;
}
}
/*
參數(shù)說明
int $debug 是否開啟調(diào)試,開啟則輸出sql語句
int $mode 0 默認(rèn)insert,無返回信息
1 返回執(zhí)行條目數(shù)
2 返回最后一次插入記錄的id
string $table 數(shù)據(jù)庫表
string $fields 需要插入數(shù)據(jù)庫的字段
string $values 需要插入數(shù)據(jù)庫的信息,必須與$fields一一對應(yīng)
*/
function hrInsert($debug, $mode, $table, $fields, $values){
global $pdo;
if($debug){
echo "insert into $table ($fields) values ($values)";
exit;
}else{
if($mode == 2){
$return = $pdo->lastInsertId("insert into $table ($fields) values ($values)");
}elseif($mode == 1){
$return = $pdo->exec("insert into $table ($fields) values ($values)");
}else{
$pdo->query("insert into $table ($fields) values ($values)");
exit;
}
return $return;
}
}
/*
參數(shù)說明
int $debug 是否開啟調(diào)試,開啟則輸出sql語句
int $mode 0 默認(rèn)update,無返回信息
1 返回執(zhí)行條目數(shù)
string $table 數(shù)據(jù)庫表
string $set 需要更新的字段及內(nèi)容,格式:a='abc',b=2,c='2010-10-10 10:10:10'
string $sqlwhere 修改條件,允許為空
*/
function hrUpdate($debug, $mode, $table, $set, $sqlwhere=""){
global $pdo;
if($debug){
echo "update $table set $set where 1=1 $sqlwhere";
exit;
}else{
if($mode==1){
$return = $pdo->exec("update $table set $set where 1=1 $sqlwhere");
}else{
$pdo->query("update $table set $set where 1=1 $sqlwhere");
exit;
}
return $return;
}
}
/*
參數(shù)說明
int $debug 是否開啟調(diào)試,開啟則輸出sql語句
int $mode 0 默認(rèn)delete,無返回信息
1 返回執(zhí)行條目數(shù)
string $table 數(shù)據(jù)庫表
string $sqlwhere 刪除條件,允許為空
*/
function hrDelete($debug, $mode, $table, $sqlwhere=""){
global $pdo;
if($debug){
echo "delete from $table where 1=1 $sqlwhere";
exit;
}else{
if($mode == 1){
$return = $pdo->exec("delete from $table where 1=1 $sqlwhere");
}else{
$pdo->query("delete from $table where 1=1 $sqlwhere");
exit;
}
return $return;
}
}
?>

另外一段代碼是基于我這個數(shù)據(jù)庫操作類的事務(wù)實例:
復(fù)制代碼 代碼如下:

/*
注意,數(shù)據(jù)庫操作表類型必須為InnoDB,其他類型不支持事務(wù)
PDO事務(wù)機(jī)制
$pdo->beginTransaction(); --開啟事務(wù)
$pdo->commit(); --結(jié)束事務(wù)
$pdo->rollBack(); --回滾操作

示例,用try/catch包住db操作,當(dāng)事務(wù)內(nèi)的db操作出現(xiàn)中斷,則執(zhí)行回滾并拋出異常信息。
*/
try{
$pdo->beginTransaction();
hrInsert(0,1,"class","name,parentid","'god',0"); //可以正常執(zhí)行
hrInsert(0,0,0,"tb_searchlog","userid,code","4"); //出錯
$pdo->commit();
}catch(Exception $e){
$pdo->rollBack();
echo "Failed: " . $e->getMessage();
}

代碼下載:點擊下載

相關(guān)文章

  • 微信 開發(fā)生成帶參數(shù)的二維碼的實例

    微信 開發(fā)生成帶參數(shù)的二維碼的實例

    這篇文章主要介紹了微信 開發(fā)生成帶參數(shù)的二維碼的實例的相關(guān)資料,這里詳細(xì)介紹該如何實現(xiàn)二維碼,需要的朋友可以參考下
    2016-11-11
  • PHP CURL模擬GET及POST函數(shù)代碼

    PHP CURL模擬GET及POST函數(shù)代碼

    PHP CURL模擬GET及POST函數(shù)代碼,需要的朋友可以參考下。
    2010-04-04
  • PHP概率計算函數(shù)匯總

    PHP概率計算函數(shù)匯總

    做項目的有時會弄個活動什么的,來讓用戶參加,既吸引用戶注冊,又提高網(wǎng)站的用戶活躍度。同時參加的用戶會獲得一定的獎品,有100%中獎的,也有按一定概率中獎的,大的比如中個ipad,小的中個Q幣。那么我們在程序里必然會設(shè)計到算法,即按照一定的概率讓用戶獲得獎品。
    2015-09-09
  • php拋出異常與捕捉特定類型的異常詳解

    php拋出異常與捕捉特定類型的異常詳解

    異常捕獲在現(xiàn)在很多ide工具里都可以用快捷鍵很方便的添加上,防止用戶看到自己看不懂的報錯甚至莫名其妙崩潰,導(dǎo)致用戶體驗不好。哪怕顯示一個友好一些的崩潰提示,也比直接顯示error:xxxx xxxxxxxxx要好得多。下面本文將詳細(xì)介紹php如何拋出異常與捕捉特定類型的異常。
    2016-10-10
  • PHP Yii2框架的關(guān)聯(lián)模型使用介紹

    PHP Yii2框架的關(guān)聯(lián)模型使用介紹

    本文對 YII2.0的多表關(guān)聯(lián)查詢做一個簡單的介紹。文中通過實例代碼介紹的非常詳細(xì),下面話不多說,來一起看看詳細(xì)的介紹
    2022-09-09
  • PHP獲取中英混合字符串長度的方法

    PHP獲取中英混合字符串長度的方法

    這篇文章主要介紹了PHP獲取中英混合字符串長度的方法,需要的朋友可以參考下
    2014-06-06
  • PHP單例模式應(yīng)用示例【多次連接數(shù)據(jù)庫只實例化一次】

    PHP單例模式應(yīng)用示例【多次連接數(shù)據(jù)庫只實例化一次】

    這篇文章主要介紹了PHP單例模式應(yīng)用,結(jié)合實例形式分析了php基于單例模式實現(xiàn)多次連接數(shù)據(jù)庫只實例化一次的相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2018-12-12
  • 原生JavaScript+PHP多圖上傳實現(xiàn)示例

    原生JavaScript+PHP多圖上傳實現(xiàn)示例

    這篇文章主要為大家介紹了原生JavaScript+PHP多圖上傳實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • PHP實現(xiàn)基本留言板功能原理與步驟詳解

    PHP實現(xiàn)基本留言板功能原理與步驟詳解

    這篇文章主要介紹了PHP實現(xiàn)基本留言板功能,結(jié)合實例形式分析了PHP實現(xiàn)基本留言板功能的相關(guān)原理、數(shù)據(jù)庫構(gòu)建、功能實現(xiàn)等步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2020-03-03
  • php安裝ssh2擴(kuò)展的方法【Linux平臺】

    php安裝ssh2擴(kuò)展的方法【Linux平臺】

    這篇文章主要介紹了php安裝ssh2擴(kuò)展的方法,結(jié)合實例形式演示了基于Linux平臺的ssh2擴(kuò)展安裝步驟與相關(guān)注意事項,需要的朋友可以參考下
    2016-07-07

最新評論

兴宁市| 永城市| 建德市| 彩票| 大渡口区| 西林县| 黑水县| 商河县| 麻江县| 大洼县| 乾安县| 图们市| 满洲里市| 上林县| 乌恰县| 广元市| 芦山县| 蒲江县| 洛川县| 伊宁市| 湟中县| 民和| 江源县| 华宁县| 开鲁县| 子长县| 青浦区| 镇雄县| 化隆| 台州市| 香港| 张北县| 九龙城区| 云霄县| 博白县| 大城县| 闽清县| 泰宁县| 义马市| 太白县| 岚皋县|