如果要使用mysqli_stmt :: $num_rows(即,检查预准备语句中的行数),则需要在执行预准备语句之后使用$stmt-> store_result(),然后才能检查其数量行.这意味着在我们检查返回的行数之前,结果存储在内存中.

$stmt = $conn->prepare($sql);

$stmt->bind_param('ss',$log_username,$log_username);

$stmt->execute();

$stmt->store_result(); // Need to store the result into memory first

if ($stmt->num_rows) {

// ...

但是,如果你想使用mysqli_result :: $num_rows(在你从语句结果转换的MySQLi结果上),你需要在执行$result = $stmt-> get_result();之后这样做,并使用$result – > num_rows;,如下所示.

$stmt = $conn->prepare($sql);

$stmt->bind_param('ss',$log_username,$log_username);

$stmt->execute();

$result = $stmt->get_result();

if ($result->num_rows) {

while ($row = $result->fetch_assoc()) {

// ....

最后,他们应该最终做同样的事情 – 提供原始准备查询返回的一些行.

注意

请务必注意,您不能在同一语句中使用store_result()和get_result().这意味着在第一个示例中,您无法转换为mysqli-result对象(通过使用get_result(),它允许您使用标准的fetch_assoc()方法).由于store_result()将结果存储到内存中,因此get_result()无需转换,反之亦然.

这意味着如果使用store_result(),则需要通过statement-fetch,mysqli_stmt :: fetch()获取并通过mysqli_stmt :: bind_result()绑定结果.如果使用get_result(),则应检查生成的MySQLi结果对象上的行数(如第二个示例所示).

你应该为此构建你的代码,这样你只需要使用其中一个.

话虽如此,使用评论中建议的affected_rows不是正确的工具 – 根据mysqli_stmt :: $affected_rows上的手册(同样适用于常规查询,mysqli :: $affected_rows):

Returns the number of rows affected by INSERT, UPDATE, or DELETE query.

This function only works with queries which update a table. In order to get the number of rows from a SELECT query, use mysqli_stmt_num_rows() instead.

php预处理获取改变行数,php – 使用MySQLi预处理语句时无法获取行数...相关推荐

  1. SQL Server之 (四) ADO增删查改 登录demo 带参数的sql语句 插入自动返回行号

    SQL Server之 (四) ADO增删查改  登录demo  带参数的sql语句  插入自动返回行号 自己学习笔记,转载请注明出处,谢谢!---酸菜 1.什么是ADO.NET ADO.NET是一组 ...

  2. 行稳致远!大数据基础设施“领航者”爱数的数智化进阶

    <中智观察>第1740篇推送 作者:海比研究院 编辑:小宏 编审:杨小天 如今,互联网.大数据.云计算.人工智能.区块链等技术加速创新,日益融入经济社会发展中的各个领域,数智化正在成为催生 ...

  3. JAVA判断sheet有效行数_Java 利用POI 读取指定excel的真实行数

    Java 使用poi包 读excel文件时,获取指定sheet页中数据行数可以通过调用 sheet.getLastRowNum() ;但这种方法仅限于当前sheet页中没有带格式的空白行时.如果其中一 ...

  4. 解决softmax后列和不为1的bug记录 :问题原因为 s为1维的,来除torch.exp(x)(64x10)时候,维数不对应,需要将s也要转换为2维的即维数为(64x1),才可以广播按行对应相除

    def softmax(x):     ## TODO: Implement the softmax function here     #print("torch.exp(x)=" ...

  5. 扩展GridView控件(7) - 行的指定复选框选中时改变行的样式

    GridView既强大又好用.为了让它更强大.更好用,我们来写一个继承自GridView的控件. [索引页] [×××] 扩展GridView控件(7) - 行的指定复选框选中时改变行的样式 作者:w ...

  6. 动态规划(0-1背包)--- 改变一组数的正负号使得它们的和为一给定数

    改变一组数的正负号使得它们的和为一给定数 494. Target Sum (Medium) Input: nums is [1, 1, 1, 1, 1], S is 3. Output: 5 Expl ...

  7. php 微博获取粉丝,新浪API,提取微博账号的信息,粉丝数、微博数等

    PS:随着现在新浪微博的广泛使用,微博平台的开放性也越来越受关注,应用的互联和网站的接入,为我们提供了越来越方便的互联网体验,因此对开发者来说,开发也变得越来越广,越来越容易,我今天主要来分享一下通过 ...

  8. 用户输入行数和列数,之后在控制台打印出用户输入行数和列数的星星

    要求:用户输入行数和列数,之后在控制台打印出用户输入行数和列数的星星 实现代码: <!DOCTYPE html> <html lang="en"><h ...

  9. 编程实现:从字符中获取连续数组序列,如字符串a1dl2iad9j3la5kudp7u9pn4blj8ap5u3e6ml9a中可以得到的连续数字序列为1234556.【注】:只考虑一位,因此最长的数

    编程实现:从字符中获取连续数组序列,如字符串"a1dl2iad9j3la5kudp7u9pn4blj8ap5u3e6ml9a"中可以得到的连续数字序列为1234556.[注]:只考 ...

最新文章

  1. ACMNO.28 Python的三行代码解决 C语言-链接字符
  2. matlab fft simulink,在Simulink中复制MATLAB的FFT?
  3. java.vm.info_深入理解java虚拟机
  4. Python基础教程(四):循环语句
  5. k8s灰度更新_k8s slb如何实现灰度发布-问答-阿里云开发者社区-阿里云
  6. TCP 三次握手 和 四次挥手
  7. Java作业-数据库
  8. 5009. tinyfsm有限状态机
  9. OpenSea2月总交易额为9390.4万美元 用户总数突破5万人
  10. 汇编proto、proc、invoke伪指令与函数声明、函数定义、函数调用
  11. 阿里云盘之资源大大大福利!
  12. CC2500 pcb调试记录
  13. VLAN及VLAN间路由
  14. 5G核心网技术基础自学系列 | 与EPC互通
  15. Linux下pppd拨号脚本配置
  16. Typora下载安装及使用方法
  17. 用c语言验证5阶魔方矩阵,穷举法打印n阶魔方矩阵
  18. 几款好用的微信开发ui库
  19. 3 有限马尔可夫决策过程(Finite Markov Decision Processes)
  20. Python-使用正则表达式爬取斗破苍穹小说文字内容(使用Requests库实现)

热门文章

  1. Supervisor管理springboot应用进程
  2. C#中其他简单LINQ查询表达式的简单使用介绍
  3. 字符串匹配之KMP---全力解析
  4. php连接mysql乱码原因_PHP连接MYSQL出现乱码的原因与解决办法
  5. java源代码实例倒计时_Java倒计时三种实现方式代码实例
  6. python爬取京东评论_Python如何爬取京东的评价信息
  7. android 动态库 后缀,Android Robolectric加载运行本地So动态库
  8. php黄页,PHP 黄页的url
  9. 优酷下载的视频保存在哪里
  10. Win11系统显示你的账户已被停用怎么办