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';

    }

    

    

?>

 

你可能感兴趣的:(bean)