问题标签 [rows-affected]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 确定 SQL UPDATE 是否影响单个 JOINed 表
根据http://us3.php.net/manual/en/pdostatement.rowcount.php:
PDOStatement::rowCount() 返回受相应 PDOStatement 对象执行的最后一个 DELETE、INSERT 或 UPDATE 语句影响的行数。
使用单个查询,是否可以判断单个 JOIN 表是否受到影响?例如,给定以下查询,我如何知道是否t1
受到影响以及是否t2
受到影响?
php - 如何在 mysqli OOP 中获取受影响的行数?Mysqli OOP 受影响的行返回 -1
在 mysqli OOP 中获取受影响行数的确切方法是什么。我正在使用 msqli OOP 创建 crud 类。我得到 int -1。
var_dump($stmt) 的输出是:
sql - SQL Server,触发器更改受影响的行
我们的数据库中有一些行已经消失,所以我们想创建一个删除触发器。
创建触发器不是问题。问题是,每当我们删除一行时,受影响的行就会从 1 更改为 2(第 1 行 = 实际删除的行,第 2 行 = 触发器添加到日志的行)。
增加的行数是一个问题,因为我们有一个应用程序,其中代码期望得到影响的行数 = 1。如果它得到影响的行= 2,则应用程序失败:(
那么有没有办法让受影响的行保持= 1,即不计算触发器添加到日志中的行。
sql - 获取受插入语句影响的详细行数
我的表设置有名为“月”的列之一。我在表上运行 sql 插入语句,并获取受影响的行数。
有没有办法获得每个“月”值影响的行数?
如果我的表是“月”列上的分区,那有帮助吗?
我的 sql 是一个标准的,如下所示:
INSERT INTO 'TargetTable' (Column1, Column2, Months, Column4,....) SELECT column_names FROM SourceTable;
我正在使用 .Net 的 SqlClient 中的 SqlCommand 将 sql 传递到 SQL 服务器。
php - 如何确定 MySQL UPDATE 是否实际匹配任何带有 WHERE 子句的行?
我想在 PHP 中运行这样的更新
为了增加安全性,我附加了 creater_id 以确保代码仅在登录用户是发票创建者时更新,否则系统不会更新。
我最初打算使用 AFFECTED_ROWS 来检查这种情况。但最终在经历了很多挫折之后,我意识到如果所有新值都与旧值相同,则 AFFECTED_ROWS 返回 0。这意味着即使我有不同的 invoice_item 值,它们也不会更新。
除了在 UPDATE 之前执行 SELECT 之外,是否有 SQL 查询或 PHP 函数会告诉我 UPDATE 是否匹配任何行,以便我可以相应地继续 UPDATE invoice_item?
php - 受影响的行可能返回 0、1、-1、3 或在某些情况下为 NULL [建议答案]
PHP 文档包含在某些情况下,affected_rows 语句可能返回 0、1、-1 甚至 3 的原因,以及此特定堆栈问题的答案。
PHP / MySQLI:affected_rows 的奇怪读数
但是我碰到的墙是受影响的行返回 NULL。我没有找到当前回答此问题的任何堆栈问题。所以我想出了为什么它会返回NULL。
这是因为您在语法上犯了错误。我倾向于将affected_rows 的使用与num_rows 关联起来。但实际上两者的用法是不同的,这就是我得到特定 NULL 值的原因。
num_rows 用法:
这将返回正确的行数;
受影响的行用法:
这将返回 null 作为$query
变量,与以前的变量不同,$query
它将返回 true 或 false。因此,在这种情况下,您总是必须调用$handler
数据库连接器对象。
这是我刚刚处理的一个问题,现在当我回去查看文档页面时,我发现我完全错过了它。我认为很多人倾向于以与 num_rows 相同的方式对待affected_rows,但这只是我。但我认为,即使这个问题是一个自我回答的问题,它也值得在这里占有一席之地,因为我花了将近 12 个小时才终于做了一个 var_dump 并找到了问题的核心。
如果有人对此有更好的答案,请改进此答案。
问题在于为什么 num_rows 和affected_rows 在这种情况下会受到不同的对待?
php - Netbeans Xdebug:mysqli_affected_rows 在应该为“1”时返回“-1”
我很困惑为什么下面的代码成功地在我的数据库表中添加了一个新行,同时mysqli_affected_rows($dbc)
返回“-1”,因此在 signup.php 中出现错误:
dbc.inc.php:
注册.php:
出于测试目的: SQL 创建表“用户”:
我将非常感谢您的提示!
编辑:
与此同时,我已经能够进一步隔离问题:代码可以直接在 Web 浏览器中正常运行,只是在 Netbeans/Xdebugmysqli_affected_rows($dbc)
中,相应行中首先正确返回“1”,但在进入以下内容之后行 (F7) 突然变为“-1”,因此错误地跳转到“else”分支,尽管数据已正确写入数据库,但返回错误。显然我不是唯一一个有这个问题的人。
这些是我在 php.ini 中的 Xdebug 设置,但我认为它们是正确的。
任何线索任何人?
php - mysql 在重复键更新时插入,检查发生了哪一个
在 PHP 中,如何在以下查询 中检测发生了什么(INSERT
或):UPDATE
php - 当值未更改时,MySQL 在 UPDATE 时没有受影响的行
MySQL 与 PHP,试图更新一行:
在两种不同的情况下,我得到零 $numAffectedRows :
1. 当没有 Id=3
的用户行时 2. 当有 Id=3 的用户行但 Age 之前已经是 25 时
有没有办法区分这两种情况?(除了读取之前的行并在更新之前手动检查值)
php - PHP 影响行返回负 1 (-1)
这很奇怪,查询执行得很好并将数据插入到表中,但是我受影响的行显示在负面而不是 1。有谁知道为什么会这样?
连接.php:
这是主要代码:
$test 返回“-1”