//获取每一篇文章的内容
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

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

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

  1. PHP mysqli_autocommit() 函数

    定义和用法 mysqli_autocommit() 函数开启或关闭自动提交数据库修改. 提示:请查看 mysqli_commit() 函数,用于提交指定数据库连接的当前事务.请查看 mysqli_ro ...

  2. PHP mysqli_rollback() 函数

    关闭自动提交,做一些查询,提交查询,然后回滚当前事务: <?php 高佣联盟 www.cgewang.com // 假定数据库用户名:root,密码:123456,数据库:RUNOOB $con ...

  3. PHP 5 MySQLi 函数

    在 PHP 中使用 MySQLi 函数需要注意的是:你需要添加对 MySQLi 扩展的支持. PHP MySQLi 简介 PHP MySQLi = PHP MySQL Improved! MySQLi ...

  4. PHP类和函数注释大全

    每次要用PHP的某个功能的时候,都要去查一下,于是决定将PHP所有类和函数都整理出来,加上注释 大致实现 将php.jar文件解压,取出目录stubs 将stubs中的所有php文件中的注释去掉,并做 ...

  5. PHP 常用函数总结(二)

    4.PHP处理数据库的常用函数. 汇总表 PHP 5 MySQLi 函数 函数 描述 mysqli_affected_rows() 返回前一个 Mysql 操作的受影响行数. mysqli_autoc ...

  6. 用trie树实现输入提示功能,输入php函数名,提示php函数

    参照刘汝佳的trie树 结构体 #include "stdio.h" #include "stdlib.h" #include "string.h&q ...

  7. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  8. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  9. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

随机推荐

  1. sql 模糊搜素拼接

    if($irb_order!=''){ $condition .= " AND d.irb_order like '%".$irb_order."%'"; } ...

  2. java 包装类和基础数据

    package com.tercher.demo; public class LangClass { public static void main(String[] args) { //所有的包装类 ...

  3. stm32f10x单片机进阶--spi使用

      使用SPI与外部flash(MX25L6406EM21)IC通信 连接方式                    如上图所示,MCU通过SPI2与外部flash芯片进行相连接. MCU spi2初 ...

  4. IhyerDB modBus采集器配置.

    近期查了一下ihyerDB-modbus采集器的相关配置,由于没有相关的modbus设备,于是今天上午根据网上的线索下载了Modbus Slave(modbus从站仿真器).笔记本也没有串口,于是下载 ...

  5. 【javascript】javasrcipt设计模式之状态模式

    使用场景 解决多个[ifelse]嵌套,将其封装成若干个方法 区分事物内部的状态,事物内部的状态的改变往往会带来事物的行为的改变 简单的多个状态直接切换的时候 //两个状态之间的切换,使用if-els ...

  6. MUI框架-05-用MUI做一个简单App

    MUI框架-05-用MUI做一个简单App MUI 是一个前端框架,前端框架就像 Bootstrap,EasyUI,Vue ,为了做 app 呢,就有了更加高效的 MUI,我觉得前端框架有很多,也没有 ...

  7. Fragment初探

    Fragment允许将Activity拆分成多个完全独立封装的可重用的组件,每个组件有它自己的生命周期和UI布局.Fragment最大的优点是为不同屏幕大小创建灵活的UI.每个Fragment都是独立 ...

  8. 自动化测试基础篇--Selenium框架设计(POM)

    一.自动化测试框架 感谢木棉花的漂泊分享,内容转自链接:http://www.cnblogs.com/fengyiru6369/p/8053035.html 1.什么是自动化测试框架 简单来说,自动化 ...

  9. Python学习---Python安装与基础1205

    1.0. 安装 1.1.1. 下载 官网下载地址:https://www.python.org/downloads/release/python-352/ 1.1.2. 配置环境变量 因为在安装的时候 ...

  10. Linxu下 expect的安装与使用

    expect学习 1.什么是except        Expect是基于Tcl的一个相对简单的免费脚本文件语言工具,用于实现自动和交互式程序进行通信            is a software ...