首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP+Mysqli 事务处理

MYSQL php PHP+Mysqli 事务处理 php+mysqli 事物处理 事物就是如果两条或多条数据只要有一条SQL语句错误,那么已经执行成功的执行回滚操作,把已经生效的SQL语句回滚为原来的值...原来有100元,B也有100元,A向B转账50元,那么就要执行两条SQL语句,一个是A的余额要减50,B的余额要加50, 如果第一条语句成功了,但是第二条语句失败了,那么就会丢失数据了,这个时候就需要事务处理了...代码 直接看代码吧 //SQL连接 $mysqli = new mysqli('127.0.0.1','root','root','test');//实例化Mysqli对象,参数分别是:数据库主机地址,...用户名,密码,数据库名 if (mysqli_connect_errno()) {//判断数据库连接是否错误 die(mysqli_connect_error()); } $mysqli->set_charset...>commit();//提交事务 }else{ $mysqli->rollback();//回滚 } } $mysqli->autocommit(true);//关闭事务 $mysqli

1K10

PHPMySQLi扩展学习(一)MySQLi介绍

可以说它的祖先,也就是 MySQL(原始) 扩展是我们很多人刚开始学习 PHP 时连接数据库的入门导师。不过随着时代的变迁,MySQL(原始) 扩展在 PHP7 已经被彻底废弃了。...只面向过程 不支持 存储过程 、 多语句执行 、 预处理语句 PHP7 已经删除了并且完全不支持 然后是 PDO 。...当然,小众并不意味着不好,就像日常开发,我们很少会在 PHP 环境中使用别的数据库,那么在自己的小项目中完全使用一套 MySQLi 来操作数据库反而更加地方便快捷。...扩展的安装及 MySQL8 需要注意的地方 MySQLi 的扩展是随 PHP 源码一起发布的,我们在编译 PHP 的时候加上 --with-mysqli 就可以了。...而 PHP7.2.4 之前的版本MySQLi 会使用 mysql_native_password 来对连接密码进行加密,这样就会导致无法连接上数据库。

2.9K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHPMySQLi扩展学习(一)MySQLi介绍

    PHPMySQLi扩展学习(一)MySQLi介绍 关于 PDO 的学习我们告一段落,从这篇文章开始,我们继续学习另外一个 MySQL 扩展,也就是除了 PDO 之外的最核心的 MySQLi 扩展。...可以说它的祖先,也就是 MySQL(原始) 扩展是我们很多人刚开始学习 PHP 时连接数据库的入门导师。不过随着时代的变迁,MySQL(原始) 扩展在 PHP7 已经被彻底废弃了。...当然,小众并不意味着不好,就像日常开发,我们很少会在 PHP 环境中使用别的数据库,那么在自己的小项目中完全使用一套 MySQLi 来操作数据库反而更加地方便快捷。...而 PHP7.2.4 之前的版本MySQLi 会使用 mysql_native_password 来对连接密码进行加密,这样就会导致无法连接上数据库。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/4.PHPMySQLi扩展学习(一)MySQLi

    2.9K20

    PHPMySQLi扩展学习(四)mysqli的事务与预处理语句

    对于 MySQLi 来说,事务和预处理语句当然是它之所以能够淘汰 MySQL(原始) 扩展的资本。我们之前也已经学习过了 PDO 关于事务和预处理语句相关的内容。...所以在这里,我们就不再多讲理论方面的东西了,直接上代码来看看 MySQLi 这两大特性与 PDO 在使用上的区别。 事务处理 首先,我们还是要让 MySQLi 对于错误的语句也报出异常来。...而在 MySQLi ,我们则需要指定 MySQLi_Driver 对象的报错属性为抛出异常,很明显,MySQLi_Driver 就是 MySQLi 的驱动对象。...在这段测试代码,第二条 SQL 语句是会报错的,于是进入了 catch ,使用 rollback() 来回滚事务。...预处理语句 总体来说,事务的处理和 PDO 的区别不大,但是预处理语句和 PDO 的使用的区别就有一些了。首先是我们的 MySQLi 的占位符只有 ? 问号占位。

    2.4K00

    PHPMySQLi扩展学习(四)mysqli的事务与预处理语句

    PHPMySQLi扩展学习(四)mysqli的事务与预处理语句 对于 MySQLi 来说,事务和预处理语句当然是它之所以能够淘汰 MySQL(原始) 扩展的资本。...事务处理 首先,我们还是要让 MySQLi 对于错误的语句也报出异常来。关于这个功能就和 PDO 很不一样了。在 PDO ,我们直接指定连接的报错属性就可以了。...而在 MySQLi ,我们则需要指定 MySQLi_Driver 对象的报错属性为抛出异常,很明显,MySQLi_Driver 就是 MySQLi 的驱动对象。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/7.PHPMySQLi扩展学习(四)mysqli...的事务与预处理语句.php 参考文档: https://www.php.net/manual/zh/book.mysqli.php

    2.2K10

    PHP扩展 Mysql 与 Mysqli

    PHP开发,使用Mysql扩展来链接Mysql数据库进行增删改查等操作。 在选择Mysql扩展的时候,官方提供了两种: MySQL 原始版。...从 PHP 5.5.0 起这个扩展已经被废弃,并且从 PHP 7.0.0. 开始被移除。 作为替代,可以使用 mysqli 或者 PDO_MySQL 扩展代替。 MySQL 增强版。...特性比较 特性 mysqli mysql PHP版本 >=5.0 >3.0 MySQL开发状态 活跃 仅维护 MySQL建议使用 首选 建议 API的字符集支持 是 否 存储过程支持情况 是 否 多语句执行支持情况...相关概念 MySQL 与 MySQLi 都是PHP方面的函数集。 在 PHP5 版本以后,增加了mysqli的函数功能。 某种意义上讲,它是MySQL系统函数的增强版,更稳定更高效更安全。...建议 PHP版本为5.x建议使用 mysqli 扩展。 PHP版本为7 只能使用 mysqli 扩展。 Thanks ~

    2.9K30

    PHP Mysqli 常用代码集合

    PHP5.0开始,不仅可以使用早期的mysql数据库扩展函数,还能使用新扩展的mysqli技术实现与mysql数据库的信息交流,PHPmysqli扩展被封装在在一个类,它是一种面向对象技术,只能在PHP5...建立MYSQL配置文件 config.ini.php config.ini.php 内容如下: 微信图片_20191129171010.jpg 用mysqli链接MYSQL数据库: 微信图片_20191129171025...在默认情况下,MYSQL是以自动提交(autocommit)模式运行,这就意味着所执行的每一个语句都将立即写入数据库,但如果使用事务安全的表格类型,是不希望自动提交的行为的 事务处理 当执行多条MYSQL..."执行成功";  }else{     $mysqli->rollback();     echo "执行失败";  } 5.恢复MYSQL事务处理的自动提交模式  $mysqli->cutocommit....jpg 以上就是PHP Mysqli 常用代码集合所有详细内容。

    1.8K20

    PHPMySQLi扩展学习(二)mysqli类的一些少见的属性方法

    PHPMySQLi扩展学习(二)mysqli类的一些少见的属性方法 虽说是少见的一些属性方法,但是可能还是有不少同学在日常的开发中使用过,这里只是学习了可能相对来说我们用得比较少的一些 mysqli...通过打印 mysqli 的 error_list 属性就可以看到当前的错误信息。 错误信息 紧接着上一段,对于执行语句的错误信息,我们可以通过几个 mysqli 的属性来获得。...在这里,我们就先看看 mysqli 关于 MySQL 线程的几个属性和方法吧。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/5.PHPMySQLi扩展学习(二)mysqli...类的一些少见的属性方法.php 参考文档: https://www.php.net/manual/zh/book.mysqli.php

    1.6K10

    PHPMySQLi扩展学习(二)mysqli类的一些少见的属性方法

    通过打印 mysqli 的 error_list 属性就可以看到当前的错误信息。 错误信息 紧接着上一段,对于执行语句的错误信息,我们可以通过几个 mysqli 的属性来获得。...)var_dump($mysqli2->connect_error); // string(90) "php_network_getaddresses: getaddrinfo failed: nodename..., PHP_EOL; 通过 set_charset() 方法就可以设置当前数据库连接的字符。...在这里,我们就先看看 mysqli 关于 MySQL 线程的几个属性和方法吧。...大家可以仔细地研究一下这个对象的这些属性,或许某些内容就是你在实际项目中所需要的。 总结 今天的文章学习的就是一些简单的 mysqli 类所持有的属性和方法。

    2.2K00
    领券