zoukankan      html  css  js  c++  java
  • legend---十一、thinkphp事务中if($ans1&&$ans2){}else{}方式和try{}catch{}方式事务操作的区别在哪里

    legend---十一、thinkphp事务中if($ans1&&$ans2){}else{}方式和try{}catch{}方式事务操作的区别在哪里

    一、总结

    一句话总结:执行的条件其实不一样

    if_else方式是两个都要影响了数据库才能执行

    try_catch方式是只要不发生异常就执行。

    比如数据表中有id为12345的字段

    比如说我们现在删除id为5和6的字段

    在if_else中就是rollback,

    在try_catch中就是commit

    1、如何修改页面的统一字体和颜色?

    这里是用的是通配符,而不是直接修改html标签,

    虽然样式可以继承,但是感觉通配符的效果要好很多,

    1 *{
    2     margin: 0px;
    3     padding: 0px;
    4     font-family: STZhongsong;
    5     color: #666;
    6 }

    2、jquery如何阻止元素冒泡(操作还是异常简单的)?

     1 <script>
     2     /*分类试炼*/
     3     /*1、大分类的操作*/
     4     $('.blog_father_category_choose_group').click(
     5         function (event) {
     6             console.log(event);
     7             event.stopPropagation();
     8         }
     9     );
    10 </script>

    3、thinkphp中这样链接http://www.legend.com/index.php/index/battle/blogcategory/bc_id/1/type/advance_sequence.html传过来的值可以用input('get.')接收么?

    产生这样链接的源代码为:

    1 <a href="{:url('battle/blogCategory',array('bc_id'=>$vo_cate['bc_id'].'_','type'=>'advance_least'))}"><i class="am-icon-trash-o"></i> 最少 </a>
    $dataIn=input('get.');//空数组
    $bc_id=input('bc_id');//可以正常接收到值

     因为这种传值方式显然不是get的标准传值方式,倒是有点像路由的参数

    4、mysql中修改表的Auto Increment(自增的那个字段)在哪里?

    design table-> Options

    里面既有修改引擎Engine

    也有修改自增字段Auto Increment

    5、mysql显示东西用的是哪个英文单词(比如显示各个数据库引擎的详情)?

    用的show;

    show engines;

    6、thinkphp中事务如何操作(比如如何开启)?

    开启事务:直接用的Db的startTrans();--Db::startTrans();

    使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。

    使用 transaction 方法操作数据库事务,当发生异常会自动回滚,例如:

    自动控制事务处理

    Db::transaction(function(){
        Db::table('think_user')->find(1);
        Db::table('think_user')->delete(1);
    });
    

    也可以手动控制事务,例如:

    // 启动事务
    Db::startTrans();
    try{
        Db::table('think_user')->find(1);
        Db::table('think_user')->delete(1);
        // 提交事务
        Db::commit();    
    } catch (Exception $e) {
        // 回滚事务
        Db::rollback();
    }
    

    注意在事务操作的时候,确保你的数据库连接是相同的。

    7、thinkphp事务中if($ans1&&$ans2){}else{}方式和try{}catch{}方式事务操作的区别在哪里?

    if_else方式是两个都要影响了数据库才能执行

    try_catch方式是只要不发生异常就执行。

    比如数据表中有id为12345的字段

    比如说我们现在删除id为5和6的字段

    在if_else中就是rollback,

    在try_catch中就是commit

     1 //19、测试事务操作
     2 public function test18(){
     3     Db::startTrans();
     4     $ans1=db('myself_goods')->delete(6);
     5     $ans2=db('myself_goods')->delete(5);
     6     if($ans1&&$ans2){
     7         // 提交事务
     8         dump('commit');
     9         Db::commit();
    10     }else{
    11         // 回滚事务
    12         Db::rollback();
    13         dump('rollback');
    14     }
    15 }
    16 
    17 //18、测试事务操作
    18 public function test17(){
    19     // 启动事务
    20     Db::startTrans();
    21     try{
    22         $ans1=db('myself_goods')->delete(6);
    23         $ans2=db('myself_goods')->delete(7);
    24         dump('$ans1:  '.$ans1);
    25         dump('$ans2:  '.$ans2);
    26         // 提交事务
    27         dump('commit');
    28         Db::commit();
    29     } catch (Exception $e) {
    30         // 回滚事务
    31         Db::rollback();
    32         dump('rollback');
    33     }
    34 }

    8、js如何实现页面刷新?

    location.reload();

    9、php如何取一个数组的前几个?

    array_slice — 从数组中取出一段

    array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )

    array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。

    Example #1 array_slice() 例子

    <?php
    $input = array("a", "b", "c", "d", "e");

    $output = array_slice($input, 2);      // returns "c", "d", and "e"
    $output = array_slice($input, -2, 1);  // returns "d"
    $output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

    // note the differences in the array keys
    print_r(array_slice($input, 2, -1));
    print_r(array_slice($input, 2, -1, true));
    ?>

    以上例程会输出:

    Array
    (
        [0] => c
        [1] => d
    )
    Array
    (
        [2] => c
        [3] => d
    )

    10、如何将一大段html代码写到js中

    一行一行对应加的形式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var html = '<div id="dialog" > '
    +'<div>'
    +'<div >11111111</div>'
    +'<form action="welcome.php" method="post">'
    +'账号: <input type="text" name="order_fee" >'
    +'密码: <input type="text" name="order_sn" >'
    +'<input type="submit" value="提交" onclick="closeBg();" />'
    +'</form> '
    +'</div>'
    +'</div>'

    这样拼接就好了啊,调用的时候:

    document.body.innerHTML  = html;

    二、内容在总结中

     
  • 相关阅读:
    cmd 命令添加防火墙端口
    linux 远程 telnet
    topshelf 服务启动运行
    postfix 邮箱服务器- SPF 防发件人欺骗
    linux 只查看目录下文件夹
    Android中的颜色设置
    thread和runnable
    Handler总结
    Failed to install Intel HAXM.
    Android Studio常见问题总结
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9681584.html
Copyright © 2011-2022 走看看