pcskys_windows7loader 一個基於PDO的資料庫操作類新 一個PDO事務執行個體

來源:互聯網
上載者:User
複製代碼 代碼如下:


/*
* 作者:胡睿
* 日期:2011/03/19
* 電郵:hooray0905@foxmail.com
*
* 20110319
* 常用資料庫操作,如:增刪改查,擷取單條記錄、多條記錄,返回最新一條插入記錄id,返回操作記錄行數等
* 20110630
* 整體修改方法,合并部分參數
* 規範代碼,一個方法裡只有1個return語句
*/
/*
參數說明
int $debug 是否開啟調試,開啟則輸出sql語句
int $mode 0 返回數組
1 返回單條記錄
2 返回行數
string $table 資料庫表
string $fields 需要查詢的資料庫欄位,允許為空白,預設為尋找全部
string $sqlwhere 查詢條件,允許為空白
string $orderby 排序,允許為空白,預設為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;
}
}
/*
參數說明
int $debug 是否開啟調試,開啟則輸出sql語句
int $mode 0 預設insert,無返回資訊
1 返回執行條目數
2 返回最後一次插入記錄的id
string $table 資料庫表
string $fields 需要插入資料庫的欄位
string $values 需要插入資料庫的資訊,必須與$fields一一對應
*/
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;
}
}
/*
參數說明
int $debug 是否開啟調試,開啟則輸出sql語句
int $mode 0 預設update,無返回資訊
1 返回執行條目數
string $table 資料庫表
string $set 需要更新的欄位及內容,格式: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;
}
}
/*
參數說明
int $debug 是否開啟調試,開啟則輸出sql語句
int $mode 0 預設delete,無返回資訊
1 返回執行條目數
string $table 資料庫表
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;
}
}
?>


另外一段代碼是基於我這個資料庫操作類的事務執行個體:

複製代碼 代碼如下:


/*
注意,資料庫動作表類型必須為InnoDB,其他類型不支援事務
PDO事務機制
$pdo->beginTransaction(); --開啟事務
$pdo->commit(); --結束事務
$pdo->rollBack(); --復原操作
樣本,用try/catch包住db操作,當事務內的db操作出現中斷,則執行復原並拋出異常資訊。
*/
try{
$pdo->beginTransaction();
hrInsert(0,1,"class","name,parentid","'god',0"); //可以正常執行
hrInsert(0,0,0,"tb_searchlog","userid,code","4"); //出錯
$pdo->commit();
}catch(Exception $e){
$pdo->rollBack();
echo "Failed: " . $e->getMessage();
}


代碼下載:點擊下載

以上就介紹了pcskys_windows7loader 一個基於PDO的資料庫操作類新 一個PDO事務執行個體,包括了pcskys_windows7loader方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.