• mysql对事务的支持


     起因:因为只是需要编写一个接口,无需使用框架,但是又要求对数据库的操作支持事务,所以直接使用mysql自带的事务进行处理

     mysql自带对事务的支持,但是他默认是关闭的,需要我们手动打开,打开mysql的事务支持,只需要一下几步:

    第一步,mysql表格类型默认是MyISAM,这个类型是不支持事务的,我们需要将他改成INNODB,语句如下:

      

    ALTER TABLE `表名` ENGINE = INNODB; 
    --ENGINE 可以用type代替
    -- 创建表时指定表类型的方法
    CREATE TABLE `表名` (
    `id` int(11) NOT NULL auto_increment,
    `tel` varchar(11) default NULL,
    ) ENGINE=MYISAM;
    --也可以在建表时直接指定表类

    第二步,打开事务

     

     $db->query('begin'); // $db需要事先创建,我就不写

    接着,我们找之前的平常的方式修改表中的结果,我们会发现,我们的sql虽然执行成功了,但是mysql表中的数据并没有改变,这是因为,我们还没有提交事务

     第三步,提交事务

    if($res){ // $res 为前面sql语句返回的执行结果
      $db->query("COMMIT");
      // 提交事务
    }else{
      $db->query("ROLLBACK")
     // 数据回滚
    }
    $db
    ->query("END");
    //   结束事务操作

    执行完这条语句后,我们再去查看表结构,如果sql语句没问题的话,表中的数据已经改变了,如果sql有问题,我们会发现不仅sql错误的那条语句没执行成功,sql正确的语句也没有执行成功,这就是mysql的事务了

  • 相关阅读:
    Linux 修改时区(debain)
    C#生成验证码
    httpPost 请求
    C# Array.FindAll
    C#删除字符串中所有的空字符
    C# 获取汉字区位码
    Qinq Vlan mapping 和DHCP 服务器
    Sql 分页存储过程
    request 之getParameterMap 方法
    如果我是面试官
  • 原文地址:https://www.cnblogs.com/dtj007/p/5336692.html
Copyright © 2020-2023  润新知