Redbean:入門(四) - 反射機制 以及 事務

<?php
    //引入rb入口文件
    include_once 'rb.php';
    
    //定義dsn以及相關的數據
    $dsn = 'mysql:host=localhost;dbname=hwibs_model';
    $user = 'root';
    $pass = '';
    $table = 'link';
    
    //連接數據庫
    R::setup($dsn,$user,$pass);
    
    //連接數據表
    $handler = R::dispense($table);
    
    //inspect::反射表,將表的字段結構返回出來
    //1.以一維數組打印出來
    //2.若是不傳參數,就是反射出全部的表名來,也是一維數組[因此說咱們若是想獲得全部表的反射,則能夠先進行第二步,在進行第一步]
    $result = R::inspect();//或者能夠傳一個table名稱進去
    
    //addDatabase::創建一個通訊管道[事實上就是多個數據庫句柄了]
    R::addDatabase("j1",$dsn,$user,$pass);//第一個參數爲自定義名稱
    R::addDatabase("j2",$dsn,$user,$pass);
    R::addDatabase("j3",$dsn,$user,$pass);
    R::addDatabase("j4",$dsn,$user,$pass);
    
    //selectDatabase::選擇一個已創建好的通訊管道[不知道這樣切換的意義有什麼好處呢????]
    //1.固然,你能夠傳入「default」,來選擇一個你最初由setup創建的管道
    R::selectDatabase("j4");
    
    R::freeze(true);
    
    //事務操做
    //1.begin開啓一個事務
    //2.執行store操做或exec操做
    //3.捕獲異常,若是出現異常則須要回滾事務
    //4.不然則正常提交事務便可
    try{
        R::begin();
        R::store($handler);
        R::commit();
    }catch (Exception $e){
        R::rollback();
    }
    
    //事務操做::沒看出來有什麼大用處,事實上就是將begin、commit或失敗的rollback系統集成了而已,
    //1.咱們要作的就是執行sql就行了
    //2.可是注意前提是關閉了mysql自動提交的功能
    R::transaction("t1");
    function t1(){
        echo '執行store或exec';
    }
    
    
?>
相關文章
相關標籤/搜索