【PHP】 mysqli_autocommit() 函数

//获取每一篇文章的内容
function getPost($f_parent_id, $f_title, $f_username, $f_board_id,$f_post_time, $f_ip,$content){
    $Artical = array();

    $conn=db_connect();
    $conn->autocommit(FALSE);

    $sql="INSERT into t_article (f_parent_id, f_title, f_username, f_board_id,f_post_time, f_ip) values";
    $sql.="(‘".$f_parent_id."‘,‘".$f_title."‘,‘".$f_username."‘,‘".$f_board_id."‘,‘".$f_post_time."‘,‘".$f_ip."‘)";
    $rs1=$conn->query($sql);
    $ttt=mysqli_insert_id($conn);
    $sq4="SELECT * from t_postinfo where f_uname=‘".$f_username."‘";
    $rs4=$conn->query($sq4);

    if($rs4 && $rs4->num_rows){
        $t=$rs4->fetch_object();
        $post_reply=$f_parent_id ? $t->f_reply_times : $t->f_post_times;
    }

    $sq2="INSERT into t_article_content (f_id, f_content ) values (LAST_INSERT_ID(),‘".$content."‘)";

    $rs2=$conn->query($sq2);

    if($f_parent_id){
        $sq3="UPDATE t_article set f_has_child=1 where f_id=‘".$f_parent_id."‘";
        $rs3=$conn->query($sq3);

        $sq4="UPDATE t_postinfo set f_reply_times=$post_reply+1 where f_uname=‘".$f_username."‘";
        $rs4=$conn->query($sq4);
    }else{
        $sq4="UPDATE t_postinfo set f_post_times=$post_reply+1 where f_uname=‘".$f_username."‘";
        $rs4=$conn->query($sq4);
    }

    if( ($rs1 && $rs2 && $f_parent_id && $rs3 && $rs4) || ($rs1 && $rs2 && !$f_parent_id && $rs4)){
      $conn->commit();
       $ret=$ttt;
    }else{
      $conn->rollback();
       $ret=true;
    }

    $conn->close();
    return $ret;
}

mysqli_autocommit() 函数开启或关闭自动提交数据库修改。

mysqli_commit() 函数,用于提交指定数据库连接的当前事务。

mysqli_rollback() 函数,用于回滚当前事务。

http://www.runoob.com/php/func-mysqli-autocommit.html

事务:一系列要发生的连续的操作

事务安全:一种保护连续操作同时满足的一种机制

事务意义:保证数据操作的完整性

事务的操作:自动事务(默认)、手动事务

手动事务:

1.开启事务:告诉系统以下所有操作不要直接写入数据表,先存放到事务日志;

2.进行事务操作;

3.关闭事务:选择性的将日志文件中操作的结果保存到数据表;

a.提交事务:同步数据表(操作成功)commit

b.回滚事务:情况日志表(操作失败)rollback

前提:引擎是innodb

回滚点:在某个成功的操作完成后,后续的操作可能成功可能失败,可以在当前成功的位置,设置回滚点,可供后续失败操作返回的位置,而不是返回所有操作。

时间: 2024-10-02 08:04:30

【PHP】 mysqli_autocommit() 函数的相关文章

php函数 PHP程序开发参考手册目录

第3章 数组函数库3.1 array_change_key_case函数——返回字符串键名全为小写或大写的数组3.2 array_chunk函数——将一个数组分割成多个数组3.3 array_combine函数——合并数组3.4 array_count_values函数——统计数组中的元素值3.5 array_diff_assoc函数——带索引检查计算数组的差集3.6 array_diff_uassoc函数——用回调函数做索引检查来计算数组的差集3.7 array_diff函数——计算数组的差集

PHP 常用函数总结(二)

4.PHP处理数据库的常用函数. 汇总表 PHP 5 MySQLi 函数 函数 描述 mysqli_affected_rows() 返回前一个 Mysql 操作的受影响行数. mysqli_autocommit() 打开或关闭自动提交数据库修改功能. mysqli_change_user() 更改指定数据库连接的用户. mysqli_character_set_name() 返回数据库连接的默认字符集. mysqli_close() 关闭先前打开的数据库连接. mysqli_commit() 提

js高阶函数

map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81] reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个

Django url 标签和reverse()函数的使用(转)

原文:http://www.yihaomen.com/article/python/355.htm 使用url标签和reverse()函数,可以避免在模板和view中对url进行硬编码,这样即使url改变了,对模板和view也没有影响 起初用django 开发应用的时候,完全是在urls.py 中硬编码配置地址,在views.py中HttpResponseRedirect()也是硬编码转向地址,当然在template 中也是一样了,这样带来一个问题,如果在urls.py 中修改了某个页面的地址,

Python2.7-内置函数

具体参见:https://docs.python.org/2/library/functions.html#file 1.进制转换:bin(x), oct(x), hex(x) 把一个十进制数分别转换为2.8.16进制 2.字符转换:chr(x)将数字(255以内不报错,128以后无字符)转换为对应ASCII字符, unichr(x)将数字转换为unicode, ord(x) 将字符转数字与前两个相反, unicode(obj, [encoding, [error]]) 用encoding解码o

linux Shell函数

Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.函数定义 1 2 3 4 function 函数名() {     语句     [return] } 关键字function表示定义一个函数,可以省略,其后是函数名,有时函数名后可以跟一个括号,符号"{"表示函数执行命令的入口,该符号也可以在函数名那一行,"}"表示函数体的结

pythonの函数学习笔记(一)

函数是可以实现一些特定功能的小方法或小程序定义函数function的方法:def function_name(arg1,arg2[,...]): statement [return value]注意事项:1.def开头,代表定义函数,def和函数名中间要敲一个空格:2.返回值不是必须的,如果没有renturn语句,则默认返回值None:3.函数名必须以下划线或字母开头,可以包含任意字母.数字或下划线的组合,区分大小写且不能是保留字: py使用名称空间的概念存储对象,这个名称空间就是对象作用的区域

条件、循环、函数定义、字符串操作练习

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式. 对前面的代码进行优化,用for,while,if,def实现: 用循环画五角星 1 import turtle 2 3 turtle.fillcolor("red") 4 turtle.begin_fill() 5 for i in range(5): 6 turtle.forward(100) 7 turtle.right(144) 8 turtle.end_fill() 用循环画同心圆

sql常用格式化函数及字符串函数

一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') //2017-09-18 22:41:50 YYYY:年(4和更多位) MM:月份号(01-12) DD:一个月里的日(01-31) HH24:一天的小时数(00-23) MI:分钟(00-59) SS:秒(00-59) 2.字符串转日期 select to_date('2017-09-18','YYYY-MM-DD') //2017-09-