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;

二、内容在总结中

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/9681584.html