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

为什么store_result()不返回等同于mysqli正则语句的num_rows?

store_result()是MySQLi扩展中的一个方法,用于将查询结果存储在客户端的内存中,以便后续操作和处理。它通常与fetch()或fetch_all()方法一起使用来获取查询结果。

与之相对应的,num_rows是MySQLi扩展中的另一个方法,用于获取查询结果集中的行数。

store_result()和num_rows()之间的区别在于它们的作用和返回值类型不同。

store_result()方法的作用是将查询结果集存储在客户端的内存中,以便后续操作。它返回一个布尔值,表示存储结果是否成功。这个方法通常在执行SELECT语句后调用。

num_rows()方法的作用是获取查询结果集中的行数。它返回一个整数值,表示查询结果集中的行数。这个方法通常在执行SELECT语句后调用,并且在调用之前需要先调用store_result()方法。

为什么store_result()不返回等同于mysqli正则语句的num_rows呢?这是因为store_result()方法只是将查询结果集存储在客户端的内存中,并没有返回查询结果的行数。这样设计的原因可能是为了提高性能和减少网络传输的开销。如果在store_result()方法中返回查询结果的行数,那么在查询结果集较大的情况下,会增加网络传输的负担,降低性能。

如果需要获取查询结果的行数,可以在调用store_result()方法之后,再调用num_rows()方法来获取。这样可以避免不必要的网络传输开销,同时也可以提高性能。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云MySQL:https://cloud.tencent.com/product/cdb
  • 腾讯云数据库TDSQL:https://cloud.tencent.com/product/tdsql
  • 腾讯云云服务器CVM:https://cloud.tencent.com/product/cvm
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

如果使用 query() 方法,返回虽然是 PDOStatement 对象,但是它是无法遍历。 接下来我们就看看 MySQLi 是如何来执行这个多条语句拼接在一起 SQL 语句。...通过它执行之后,返回结果是一个布尔值,如果第一条语句就有问题的话,那么它返回就是 FALSE 。如果是后面的语句错误了,我们需要调用 next_result() 才能获取后面语句错误信息。...我们注意到 INSERT 、 UPDATE 语句返回结果都是 FALSE 。而且 SELECT 语句 num_rows 也是 0 。...num_rows 有数据了,最后一条 SELECT now(); 语句也成功返回了。...总结 光说练假把式,虽说多语句执行看似很美好,但即使在这简单测试代码中,也会出现各种问题,大家一定要自己多尝试一下。

2.9K00

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

如果使用 query() 方法,返回虽然是 PDOStatement 对象,但是它是无法遍历。 接下来我们就看看 MySQLi 是如何来执行这个多条语句拼接在一起 SQL 语句。...通过它执行之后,返回结果是一个布尔值,如果第一条语句就有问题的话,那么它返回就是 FALSE 。如果是后面的语句错误了,我们需要调用 next_result() 才能获取后面语句错误信息。...我们注意到 INSERT 、 UPDATE 语句返回结果都是 FALSE 。而且 SELECT 语句 num_rows 也是 0 。...num_rows 有数据了,最后一条 SELECT now(); 语句也成功返回了。...总结 光说练假把式,虽说多语句执行看似很美好,但即使在这简单测试代码中,也会出现各种问题,大家一定要自己多尝试一下。

2.9K20

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

就像 PDO 中 PDO_Statment 对象一样,MySQLI_STMT 对象也是一个预处理语句所形成对象,专门用来操作 MySQLi 所生成预处理语句。...绑定参数之后,我们就可以通过 execute() 方法来执行语句。同 PDO 一样,这个方法只返回成功失败信息,也就是一个布尔值。...在这段代码中,我们使用了 num_rows 这个属性来获得查询结果行数量,这个属性是只针对 SELECT 语句。...返回结果集 执行 fetch() 方法返回是一个布尔值,它主要作用是将结果集绑定到指定变量中,所以如果你直接打印它结果是不会有什么有用信息,我们必须通过绑定列变量方式来获得数据。...() 方法来将结果集保存到内存中,这个方法和 MySQLi store_result() 方法是一样

2.4K00

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

PHP中MySQLi扩展学习(五)MySQLI_STMT对象操作 就像 PDO 中 PDO_Statment 对象一样,MySQLI_STMT 对象也是一个预处理语句所形成对象,专门用来操作 MySQLi...绑定参数之后,我们就可以通过 execute() 方法来执行语句。同 PDO 一样,这个方法只返回成功失败信息,也就是一个布尔值。...在这段代码中,我们使用了 num_rows 这个属性来获得查询结果行数量,这个属性是只针对 SELECT 语句。...返回结果集 执行 fetch() 方法返回是一个布尔值,它主要作用是将结果集绑定到指定变量中,所以如果你直接打印它结果是不会有什么有用信息,我们必须通过绑定列变量方式来获得数据。...() 方法来将结果集保存到内存中,这个方法和 MySQLi store_result() 方法是一样

2.1K10

PHP 应用PDO技术操作数据库

> 通过对象返回结果集: 该方法与前面三个不同,他将以一个对象形式返回一条结果记录,而不是数组,它每个字段都需要以对象方式进行访问,数据列名称区分字母大小写. store_result(); // 取回所有的查询结果 echo "记录个数: {$res->num_rows} 行 "; // 绑定返回结果到指定变量上...> 如果在SELECT查询语句上也使用占位符去查询,并需要多次执行这一条语句时,也可以将mysqli_stmt对象中bind_param()和bind_result()方法结合起来. num_rows} 行 "; // 绑定返回结果到指定变量上 $res->bind_result($u_id,$u_name,$u_sex,...> PDO 获取表中数据: 当执行查询语句时我们可以使用PDO中Query()方法,该方法执行后返回受影响行总数,也可以使用Fetch等语句,下面是三者查询方式. <?

3.4K10

PHP使用mysqli同时执行多条sql查询语句实例

PHP数据库操作中,mysqli相对于mysql有很大优势,建议大家使用;之前我们有介绍过如何在PHP5中使用mysqliprepare操作数据库,使用mysqli更是支持多查询特性,请看下面这段php...语句 $sql = "select id,name from `user`;"; $sql .= "select id,mail from `user`"; if ($mysqli- multi_query...($sql)){//使用multi_query()执行一条或多条sql语句 do{ if ($rs = $mysqli- store_result()){//store_result()方法获取第一条...//next_result()方法获取下一结果集,返回bool值 } $mysqli- close(); //关闭数据库连接 ?...通过上面的例子,相信大家都可以很容易地明白了,在使用时候要特别注意是multi_query()执行多条语句时,语句之间是用 ; 隔开,否则会出现错误。

3.3K30

利用PHP访问MySql数据库逻辑操作以及增删改查实例讲解

php //造连接对象 $db = new MySQLi("localhost"/【本文中一些PHP版本可能是以前,如果不是一定要,建议PHP尽量使用7.2以上版本】/,"root","","0710..._test"); //写SQL语句 $sql = "select * from student"; //检测连接数据库是否成功,失败返回“连接失败”,并退出程序 if(mysqli_connect_error...()){ die("连接失败"); } //执行SQL语句,返回结果集对象 $result = $db->query($sql); var_dump($result->num_rows); //判断结果有无数据...if($result->num_rows){ echo "存在数据"; } //取数/【要记得博客地址www.isres.com】/据(查询语句) //$arr = $result->fetch_all...//增删改语句 //添加一条数据(返回值true或false) $sql = "insert into student values('102','王某','男','1987-7-1','95033'

86530

PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解

查找下面的语句: ;extension=php_mysqli.dll 将其修改为: extension=php_mysqli.dll (2)重新启动Apache/IIS,即可。...该扩展完全支持MySQL 5.1中采用鉴定协议,也支持预处理语句和多语句API。此外,该扩展还提供了先进、面向对象编程接口 <?...5')) { //print("Very large cities are: "); /* Fetch the results of the query 返回查询结果 */...之后我们使用改 SQL 语句从数据库中取出结果集并赋给复制给变量 $result。 函数 num_rows() 判断返回数据。...如果返回是多条数据,函数 fetch_assoc() 将结合集放入到关联数组并循环输出。 while() 循环出结果集,并输出 id, firstname 和 lastname 三个字段值。

2.1K20

SQL注入攻击与防御举例

SQL注入攻击与防御实例 1.1 以下是一段普普通通登录演示代码,该脚本需要username和password两个参数,该脚本中sql语句没有任何过滤,注入起来非常容易,后续部分将逐步加强代码防注入功能...常见过滤手段就是限制关键字,通过正则实现。 以下是节选某CTF赛题中一段代码,CTF中经常使用留有余地过滤函数,让选手可以进行SQL注入。 if(!...预编译能防止SQL注入是因为SQL语句在执行前经过编译后,数据库将以参数化形式进行查询,当运行时动态地把参数传给预处理语句时,即使参数里有敏感字符如 'or''='数据库也会将其作为一个字段属性值来处理而不会作为一个...第二行是对SQL语句进行预编译。 第三行是限制填充类型为字符串,使用username变量来填充SQL语句。 第四行是确定查询结果存储到哪些变量中。 第五行是执行,执行完毕将会获得结果。...使用预编译方式防止SQL语句简单有效,暂时没有发现防不住情况,建议使用。

97630

PHP操作mysql数据库

) 如果选择成功返回true,否则返回false 4、选择字符集 mysqli_set_charset(连接对象,要选择字符集) 如果选择成功返回true,否则返回flase 5、发送sql语句 mysqli_query...(连接对象,要发送sql语句) 成功得到一个结果集对象,失败返回false 6、处理结果 6.1获取条目数 a、mysqli_num_rows(结果集对象) 用来获取查询得到集录条数 仅对select...类型INSERT UPDATE DELETE 操作使用 返回值 大于0整数成功 -1失败 6.2获取查询结果集内容 1、mysqli_fetch_array(结果集对象) 将查询结果以混合数组形式返回...,一次返回一条 2、mysqli_feach_row(结果集对象) 将查询结果以索引数组形式返回,一次返回一条 3、mysqli_fetch_assoc(结果集对象) 将查询结果以关联数组形式返回,...data_seek() mysqli_data_seek() 移动结果集中指针到任意行 num_rows() mysqli_num_rows() 获取结果集中行数量

4.9K20

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

// 执行语句 $result = $stmt->get_result(); var_dump($result); // object(mysqli_result)#3 (5) { // ["..."]=> // int(7) // ["type"]=> // int(0) // } 如果使用 MYSQLI_STMT 的话,直接在 execute() 方法执行查询语句之后...,并以数组形式返回,它可以指定返回格式,默认情况下是 MYSQLI_NUM 这种数组下标的形式,和 PDO 类似,我们直接指定为 MySQLI_ASSOC 就可以返回键名形式数据内容。...,同样它也可以指定返回结果集格式,和 fetch_all() 是类似的,只不过它是只获取下一行而不是全部数据集,而且它参数默认是返回 MYSQLI_BOTH ,也就是数字下标和键名下标同时返回结果...它其实就是默认指定为 MySQLI_NUM 结构返回方式。

2.9K10

PHP基础之与MySQL那些事

案例 先说下操作数据库大体思路吧,就是先获取连接-》选择数据库-》设置操作编码-》发送sql指令-》对返回结果进行处理-》释放资源,断开连接。案例是一个在线词典查询。...先提一个需求,如果我们像数据库批量添加用户,如果按照之前办法一条一条发送sql语句来处理,这样很占用资源,并且效率低。所以采用批量执行sql语句方式。...接下来用两个案例来讲解,因为增加,修改,删除操作返回是布尔值,而查询操作返回是结果集,所以分来来处理比较好。 批量执行dml语句 因为dml返回是布尔值,所以处理起来也比较好处理。...if ($mysqli->multi_query($sqli)){ do{ //从mysqli中取出第一个结果集 $result=$mysqli->store_result...关于MySQL批量执行sql语句就说到这里。 MySQL事务控制 上面简单介绍了MySQL扩展库,MySQLI扩展库,批量执行SQL语句,接下来说一说MySQL事务控制。

1.5K10

PHP7原生MySQL数据库操作实现代码

() 仅对 SELECT,SHOW 或 DESCRIBE 语句返回一个mysqli_result结果集对象,如果查询执行不正确则返回 FALSE。...对于其它类型 SQL 语句mysqli_query()在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 返回值意味着查询是合法并能够被服务器执行。...取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引) – 返回返回根据从结果集取得行生成数组,如果没有更多行则返回 FALSE。...:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引) – 返回返回根据从结果集取得行生成数组,如果没有更多行则返回 FALSE。...– 注意:本函数返回字段名区分大小写。 取得结果集中行数目 mysqli_num_rows(mysqliResult) – 注意:此命令仅对 SELECT 语句有效。

4.7K41

PHP 快速入门

> 对象克隆: 有时我们需要建立一个对象副本,改变原来对象时希望影响副本,此时可使用对象克隆,即将原对象所有信息从内存中复制一份,存储在新开辟内存中用于对象拷贝,克隆后两个对象互不干扰....$res->store_result(); // 取回所有的查询结果 echo "记录个数: {$res->num_rows} 行 "; // 绑定返回结果到指定变量上...> 如果在SELECT查询语句上也使用占位符去查询,并需要多次执行这一条语句时,也可以将mysqli_stmt对象中bind_param()和bind_result()方法结合起来. num_rows} 行 "; // 绑定返回结果到指定变量上 $res->bind_result($u_id,$u_name,$u_sex,...> PDO 获取表中数据: 当执行查询语句时我们可以使用PDO中Query()方法,该方法执行后返回受影响行总数,也可以使用Fetch等语句,下面是三者查询方式. <?

2.6K10
领券