`print_r($mysqli,1)` 更改 `$mysqli->affected_rows`

2023-12-15

我正在使用用户断言函数,例如:

debug_assert (
    gettype($ob)=='object', 
    "Not an object <pre>"
        .print_r($ob,1).'</pre>' 
    ) or exit;

但我发现 print_r 在调用 $mysqli 时更改了 $mysqli->affected_rows 的结果:它将受影响的行从之前的“n”重置为-1。

测试代码:

$q= "INSERT INTO t_envois SET id_contact=243";

if (!$mysqli) die ("missing mysqli");
$ok = $mysqli->query($q);
if (!$ok) die ("bad query $q : ".$mysqli->errno.") ".$mysqli->error);

function get_affected_rows() {
    global $mysqli;
    return $mysqli->affected_rows;
}

echo "1) ".($mysqli->affected_rows)."<br>"; // 1
echo "2) ".($mysqli->affected_rows)."<br>"; // 1
echo "3) ".get_affected_rows()."<br>";    // 1 try other function
echo "4) ".get_affected_rows()."<br>";    // 1 (no issue)
echo "5) ".(print_r($mysqli,1))."<br>";    // affected_rows shown as 1
echo "6) ".($mysqli->affected_rows)."<br>"; // -1 CHANGED !!
echo "7) ".get_affected_rows()."<br>";    // -1 etc

调用 print_r 时结果如何从 1 变为 -1 ?是否有其他非 sql 函数可以更改 $mysqli 字段?有办法避免这种情况吗?


正如 @Progman 所说,它与长期存在的 php bug 有关:http://bugs.php.net/bug.php?id=67348

stat、print_r、var_dump 以及可能的其他调用“stat”的函数确实会将受影响的行重置为 -1。

现在已在 PHP>7.4 中修复,没有stat不再是财产,而是一个stat() method

就我而言, php

function print_it($thing) {
    if ((gettype ($thing) == 'object') 
        and (get_class($thing) == 'mysqli'))
        echo "...\naffected_rows => ".$thing->affected_rows."...";
    else 
        print_r($thing);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

`print_r($mysqli,1)` 更改 `$mysqli->affected_rows` 的相关文章

  • 将字符串中每个单词的第一个字符大写,“and”、“to”等除外

    如何使字符串中每个单词的第一个字符大写接受几个我不想转换的单词 例如 和 to 等 例如 我想要这个 ucwords art and design 输出下面的字符串 艺术与设计 有可能像 strip tags text p a 我们允许 并
  • 禁用 php 文件缓存以进行调试

    我有一个安装了 zpanel 和 apache2 php mysql 的 vps 我正在为 php 网站开发一个小型后端 对于准备发布的网站来说情况是完美的 但现在我需要禁用缓存 php 文件的服务器功能以立即测试我的 php 文件的正确性
  • MySQL:删除包含特定参数且早于一天的行[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在使用 mysql 为我的网站创建一个登录系统 它在基于订阅的系统上运行 如果参数 premium 等于 1 DAY 如果它早于一
  • 如何将这种奇怪的字符串解码为UTF-8? (PHP)

    所以我有 u041E u043B u0435 u0433 20 u042F u043A如何将其保存为真正的 UTF 8 或 对我来说更好的是 HTML 实体 这就是 JavaScriptescape 格式 它与 URL 编码类似 但不兼容
  • 为什么 Laravel 即使在本地环境也会重定向到 https?

    我正在开发 Laravel 5 5 版本 我有一个需要域才能执行的应用程序 这就是为什么 我在我的中添加了以下条目 etc hosts文件 以便我可以使用以下域打开我的应用程序仪表板 应用程序 dev or api application
  • php mail() 函数:如何在 html 消息中显示图像和使用样式[重复]

    这个问题在这里已经有答案了 我目前遇到 php 问题mail 功能 第一个问题是某些电子邮件浏览器 例如 gmail 不会自动显示图像 第二个问题是该消息未使用我输入的样式 p 这是仅适用于 php 的 消息 部分的代码mail 功能 其余
  • 如果用户禁用了 javascript,如何回退到完全不同的索引页面?

    我有一个大型 动态生成的单页网站 该网站严重依赖 javascript 我想为没有 javascript 的人提供后备 每个版本必须有不同的 php 代码 所以基本上我需要一个完全不同的索引页面 我不想将所有内容都包装在 javascrip
  • Woocommerce - 检查产品是否是在 60 天前创建的

    我想检查 Woocommerce 产品是否是在不到 60 天前创建的 如果属实 请做点什么 我正在使用官方 Woocmerce 功能获取在后端 管理中创建产品的日期 product gt get date created 我的代码部分有效
  • Codeigniter 未连接到 SQL Server

    我正在尝试使用 CodeIgniter 连接到 SQL 服务器 如果我使用 sqlsrv 驱动程序 我会收到致命错误消息 如果我使用 odbc 驱动程序 我会收到 无法使用提供的设置连接到数据库服务器 错误消息 有谁知道如何解决这个问题 我
  • Laravel Factory:手动增量列

    对于以下工厂定义 该列order需要按顺序进行 已经有专栏了id即自动递增 第一行的order应该开始于1以及每个附加行的order应该是下一个数字 1 2 3 etc factory gt define App AliasCommand
  • 如何使用 DbSession 在 Yii2 中创建用户会话管理系统 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 今天 当我想为我的网站创建用户个人资料页面并希望创建系统用户可以管理他在此系统中的活动会话时 需要 查看活动会话 浏览器和平台 查看当
  • 仅当客户尚未使用优惠券时,才将优惠券添加到处理订单电子邮件中

    我发现了这个片段 它在订单邮件中添加了优惠券 我想仅当客户未使用任何优惠券时才将其显示在处理订单邮件中 add action woocommerce email before order table add content 20 funct
  • 将 SQL 查询的 SELECT 子句解析为 PHP 数组

    这更多的是用于分析 PHP 中的查询before它被发送到服务器 我这样做的原因非常复杂 所以我不想深究其原因 在 PHP 中 我需要将字段选择存储到 PHP 数组中 以这个查询为例 SELECT user id username DATE
  • PHP 会话混乱

    好吧 我已经很困惑了 我有一个存储在会话中的对象 我可以向该对象添加项目 到目前为止非常简单 我像这样初始化对象 template new Template mysqli SESSION template serialize templat
  • Active Record 库的 CodeIgniter 挂钩

    我需要一些帮助来理解 CodeIgniter 的钩子逻辑 以使代码适应我的需要 这一页 https www codeigniter com user guide general hooks html https www codeignite
  • 在cakephp中调用函数

    public function data if old status prev lat lat prev long long if status Village Unknown exec query else if status Town
  • 如何获得DiVs等级?

    html div class div class p strong span style color FF0000 Content1 span strong p p style text align center Content2 img
  • PayPal REST API:通过重定向 URL 或 Webhook 调用履行订单/付款?

    我正在致力于将 PayPal REST API 集成到我的 Symfony 2 Web 应用程序中 我不确定完成订单 付款的正确时间 地点 与金额 客户数据等其他参数一起 我将两个 URL 传输到 PayPal API 一个是接受付款时用户
  • php SimpleXML 属性丢失

    我这里有以下 xml 文档 编辑 示例见下文 我正在使用 php SimpleXML 将其转换为对象来读取它 xmlContent file get contents path test xml tablesRaw new SimpleXM
  • PHP 中的金字塔星号

    请看我的代码 for row var row gt 1 row for j 0 j lt row j echo echo echo nbsp Output 但我需要输出如下 您可能想查看一些字符串函数

随机推荐

  • PHP中的CSRF(跨站请求伪造)攻击示例及预防

    我有一个网站 人们可以这样投票 http mysite com vote 25 这将对第 25 项进行投票 我只想将此功能提供给注册用户 并且仅当他们愿意时才提供 现在我知道当有人在网站上忙碌时 有人给他们一个像这样的链接 http mys
  • 如何将 arrayList.toString() 转换为实际的 arraylist

    在我的软件中 由于没有Array数据类型输入SQLite 我保存了我的ArrayList as a String 现在我需要使用我的数组并希望将其转换回 ArrayList 我该怎么做 这里有一个例子 ArrayList
  • 如何使用谷歌地图V2在android中使用MapView?

    我想在我的活动中显示地图 在谷歌地图 V1 中我们使用
  • 使用 CSS 制作 Google API 地图标记动画? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 http bluefaqs com 2016 02 how to animate a map location marker with css 显示脉动的 GPS 位置蓝点 位于
  • SQL 点表示法

    有人可以向我解释一下 SQL Server 如何使用点表示法来识别桌子的位置 我一直以为地点是Database dbo Table但我看到代码中有其他东西代替dbo 就像是 DBName something Table有人可以解释一下吗 这
  • 在 Mac 上使用 Selenium WebDriver 在 Firefox 中打开新选项卡

    我刚刚安装了 Selenium Web Driver 并尝试了一下 效果很好 我的用例可以描述如下 在具有伪 X 服务器 Xvfb 的服务器上启动 Firefox 新的 Driver Firefox 对象 打开 10 个选项卡并在每个选项卡
  • upload_max_filesize、php.ini 和 Google App Engine

    我有一个在 Google App Engine 上运行的 PHP 5 5 应用程序 它基于 CodeIgniter 框架 最近我开始需要上传超过 8 MB 的文件 我收到以下错误 PHP Warning POST Content Lengt
  • 将 LocalDate 转换为 LocalDateTime 或 java.sql.Timestamp

    我正在使用 JodaTime 1 6 2 我有一个LocalDate我需要转换为 Joda LocalDateTime or a java sqlTimestamp用于或映射 这样做的原因是我已经弄清楚如何在LocalDateTime an
  • 比较 2 个 JSON 对象 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中的对象比较 是否有任何方法可以接受 2 个 JSON 对象并比较这两个对象以查看是否有任何数据发生更改 Edit 审查完评论后 需要进行一些澄清 JSON 对象定义为 一组无序
  • Flask 在请求之前获取 url 变量?

    在 Flask 中 我有带有变量的 url 规则 例如 my blueprint add url rule
  • 为 iOS 7 编译 x264

    我在为 iOS 编译 x264 时遇到错误 我有 Xcode 版本 5 0 5A1413 和 Apple LLVM 版本 5 0 clang 500 2 75 基于 LLVM 3 3svn 我正在编译 x264 snapshot 20130
  • PHPhotoLibrary 保存 gif 数据

    我在新的 PHPhotoLibrary 中找不到与 ALAssetsLibrary gt writeImageDataToSavedPhotosAlbum 类似的方法 因为 ALAssetsLibrary 在 iOS 9 中已弃用 我无法保
  • 组合 git `continue` 命令

    我可能需要以不同的方式运行 git rebase continue git cherry pick continue git revert continue 在每种情况下 我的命令行都会提醒我 我正处于中间状态 rebase cp reve
  • 如何在audio_service flutter中传递和播放播放列表中特定队列位置的媒体项目?

    我正在使用颤动音频服务 and 只是音频音乐播放器包 我想在初始化音乐播放器时播放播放列表中特定队列位置的媒体项目 当我调用 AudioService start 方法时 它始终播放播放列表的第一项 当我启动音频服务时 如何传递并播放播放列
  • 读取文件的前 4 个字节

    我习惯了 C 但我试图制作一个将前 4 个字节读入数组的应用程序 但我没有成功 我还需要反转文件的 Endian 我不知道在 Java 中如何 在 C 中是这样Array Reverse bytes 我尝试将文件读入 Int32 但由于某种
  • Gradle sonarqube 无法识别常规测试

    我有一个多语言项目 使用 Java JUnit 和 Groovy Spock 实现测试 plugins id org sonarqube version 2 2 1 apply plugin idea apply plugin java a
  • Jquery - IE 未实现错误(在 IE 8 中)

    我遇到了 IE 未实现 JavaScript 错误 它似乎与我到目前为止在该网站上阅读的内容没有任何关系 我使用 jquery simplemodal 插件 它在除 IE 之外的所有浏览器中都可以正常工作 除非我将 doctype 更改为
  • 如何在卸载时应用 Msi 转换?

    我正在尝试修复已发布的基于 Windows Installer 的设置 该修复针对卸载软件包时发生的错误 为此 我想提供一个在卸载之前应用的 mst 转换文件 产品安装后是否可以使用转换 或者可以在卸载开始之前将转换应用于已安装的 msi
  • 如何在 OpenCV Java 中从 HoughLines 变换检测矩形

    我知道这是重复的帖子 但仍然在实施过程中陷入困境 我遵循互联网上的一些指南 了解如何使用 OpenCV 和 Java 检测图像中的文档 我想出的第一个方法是在预处理一些图像处理 如模糊 边缘检测 后使用 findContours 在获得所有
  • `print_r($mysqli,1)` 更改 `$mysqli->affected_rows`

    我正在使用用户断言函数 例如 debug assert gettype ob object Not an object pre print r ob 1 pre or exit 但我发现 print r 在调用 mysqli 时更改了 my