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;
二、内容在总结中