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

PHP中的MySQLi扩展学习(一)MySQLi介绍

PHP中的MySQLi扩展学习(一)MySQLi介绍 关于 PDO 的学习我们告一段落,从这篇文章开始,我们继续学习另外一个 MySQL 扩展,也就是除了 PDO 之外的最核心的 MySQLi 扩展。...什么MySQLi MySQLi 扩展允许我们访问 MySQL4.1 及以上版本的数据库所提供的功能。...本身它们其实并没有什么太大的差别,不过现代化的大型框架中基本都会将 PDO 作为默认的数据库连接来进行封装,毕竟它的可移植性可以方便这些通用框架连接不同的数据库。...$mysqli = mysqli_connect("localhost", "root", "", "blog_test"); $res = mysqli_query($mysqli, "SELECT...$mysqli = new mysqli("localhost", "root", "", "blog_test"); $res = mysqli_query($mysqli, "SELECT * FROM

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

    PHP中的MySQLi扩展学习(三)mysqli的基本操作

    记住,它返回的不是受影响的行数,这一点是需要注意的。我们如果需要获取受影响的行数需要使用 MySQLi 的属性 affected_rows 。...如果执行的是 SELECT 语句,那么 query() 返回的就是一个 mysqli_result 对象,它代表从一个数据库查询中获取的结果集。关于这个对象的内容我们将在后面的文章中进行详细的说明。...如果使用 query() 方法,返回的虽然是 PDOStatement 对象,但是它是无法遍历的。 接下来我们就看看 MySQLi 是如何来执行这个多条语句拼接在一起的 SQL 语句的。...通过它执行之后,返回的结果是一个布尔值,如果第一条语句就有问题的话,那么它返回的就是 FALSE 。如果是后面的语句错误了,我们需要调用 next_result() 才能获取后面语句的错误信息。...我们注意到 INSERT 、 UPDATE 语句返回的结果都是 FALSE 。而且 SELECT 语句中的 num_rows 也是 0 。

    2.9K00

    PHP中的MySQLi扩展学习(三)mysqli的基本操作

    记住,它返回的不是受影响的行数,这一点是需要注意的。我们如果需要获取受影响的行数需要使用 MySQLi 的属性 affected_rows 。...如果执行的是 SELECT 语句,那么 query() 返回的就是一个 mysqli_result 对象,它代表从一个数据库查询中获取的结果集。关于这个对象的内容我们将在后面的文章中进行详细的说明。...如果使用 query() 方法,返回的虽然是 PDOStatement 对象,但是它是无法遍历的。 接下来我们就看看 MySQLi 是如何来执行这个多条语句拼接在一起的 SQL 语句的。...通过它执行之后,返回的结果是一个布尔值,如果第一条语句就有问题的话,那么它返回的就是 FALSE 。如果是后面的语句错误了,我们需要调用 next_result() 才能获取后面语句的错误信息。...我们注意到 INSERT 、 UPDATE 语句返回的结果都是 FALSE 。而且 SELECT 语句中的 num_rows 也是 0 。

    2.9K20

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

    所以在这里,我们就不再多讲理论方面的东西了,直接上代码来看看 MySQLi 中这两大特性与 PDO 在使用上的区别。 事务处理 首先,我们还是要让 MySQLi 对于错误的语句也报出异常来。...而在 MySQLi 中,我们则需要指定 MySQLi_Driver 对象中的报错属性为抛出异常,很明显,MySQLi_Driver 就是 MySQLi 的驱动对象。...// 使用异常处理错误情况 $driver = new mysqli_driver(); $driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT...try { // 开始事务 $mysqli->begin_transaction(); $mysqli->query("insert into tran_innodb (name...12)"); // 不存在的表 // 提交事务 $mysqli->commit(); } catch (Exception $e) { // 回滚事务 $mysqli

    2.4K00

    PHP中的MySQLi扩展学习(六)MySQLI_result对象操作

    不少同学会发现,current_field 和 lengths 好像并没有什么实际的内容,其实这两个属性是需要在特定操作下才会显示内容的,比如 lengths 是要在 fetch() 结果集之后才会有信息的...,它可以指定返回的格式,默认情况下是 MYSQLI_NUM 这种数组下标的形式,和 PDO 类似,我们直接指定为 MySQLI_ASSOC 就可以返回键名形式的数据内容。...,同样它也可以指定返回结果集的格式,和 fetch_all() 是类似的,只不过它是只获取下一行而不是全部的数据集,而且它的参数默认是返回MYSQLI_BOTH ,也就是数字下标和键名下标同时返回结果...另外还有一个 fetch_assoc() 方法,直接就是返回 MYSQLI_ASSOC 格式的数据,这个方法不需要任何参数,它可以看成是 fetch_array(MYSQLI_ASSOC) 这种使用方式的一个封装...它其实就是默认指定为 MySQLI_NUM 的结构返回方式。

    2.9K10

    PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作

    PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作 就像 PDO 中的 PDO_Statment 对象一样,MySQLI_STMT 对象也是一个预处理语句所形成的对象,专门用来操作 MySQLi...; $username='mysqli_username'; $password='mysqli_password'; $salt = 'mysqli_salt'; $stmt->bind_param...同 PDO 一样,这个方法只返回成功失败的信息,也就是一个布尔值。...可以看出,MySQLI_STMT 的错误属性和信息基本和 MySQLi 对象的是一样的。 列绑定 除了请求查询语句参数的绑定之外,MySQLI_STMT 也是支持直接绑定列的。...返回结果集 执行 fetch() 方法返回的是一个布尔值,它主要的作用是将结果集绑定到指定的变量中,所以如果你直接打印它的结果是不会有什么有用的信息的,我们必须通过绑定列变量的方式来获得数据。

    2.1K10

    PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作

    ; $username='mysqli_username'; $password='mysqli_password'; $salt = 'mysqli_salt'; $stmt->bind_param...同 PDO 一样,这个方法只返回成功失败的信息,也就是一个布尔值。...; $id = 's'; $username='mysqli_username'; $password='mysqli_password'; $salt = 'mysqli_salt'; $stmt-...可以看出,MySQLI_STMT 的错误属性和信息基本和 MySQLi 对象的是一样的。 列绑定 除了请求查询语句参数的绑定之外,MySQLI_STMT 也是支持直接绑定列的。...返回结果集 执行 fetch() 方法返回的是一个布尔值,它主要的作用是将结果集绑定到指定的变量中,所以如果你直接打印它的结果是不会有什么有用的信息的,我们必须通过绑定列变量的方式来获得数据。

    2.5K00

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

    PHP中的MySQLi扩展学习(四)mysqli的事务与预处理语句 对于 MySQLi 来说,事务和预处理语句当然是它之所以能够淘汰 MySQL(原始) 扩展的资本。...所以在这里,我们就不再多讲理论方面的东西了,直接上代码来看看 MySQLi 中这两大特性与 PDO 在使用上的区别。 事务处理 首先,我们还是要让 MySQLi 对于错误的语句也报出异常来。...而在 MySQLi 中,我们则需要指定 MySQLi_Driver 对象中的报错属性为抛出异常,很明显,MySQLi_Driver 就是 MySQLi 的驱动对象。...// 使用异常处理错误情况 $driver = new mysqli_driver(); $driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT...try { // 开始事务 $mysqli->begin_transaction(); $mysqli->query("insert into tran_innodb (name

    2.2K10

    PHP Mysqli 常用代码集合

    PHP5.0开始,不仅可以使用早期的mysql数据库扩展函数,还能使用新扩展的mysqli技术实现与mysql数据库的信息交流,PHP的mysqli扩展被封装在在一个类中,它是一种面向对象技术,只能在PHP5...和MYSQL4,1或更高的版本才能使用,(i)表示该进,使用mysqli,执行速度更快,更方便,更高效,也可以使数据库访问更安全(因为用类模式) 使用mysqli 简单流程 设置PHP.ini 配置文件...extension=php_mysqli.dll 创建连接: 微信图片_20191129170748.jpg 检测连接: 微信图片_20191129170806.jpg 获取数据库返回值: 微信图片...close(); (其他有用参数) $num = $stmt->affected_rows;      受影响的行数 $id  = $stmt->insert_id;          当是插入命令时,返回插入的行...模式运行,这就意味着所执行的每一个语句都将立即写入数据库中,但如果使用事务安全的表格类型,是不希望自动提交的行为的 事务处理 当执行多条MYSQL命令时,当然希望当其中一条命令出错时,所有的命令都不执行,返回执行命令之前的状态

    1.8K20
    领券