UPDATE 查询后的 PDO rowCount() 可以显示“未进行更改”和“不存在的行”之间的区别吗?

2023-11-21

我正在使用 PDO 进行更新查询。我想知道我的更新查询是否没有更改数据库中的任何内容,因为:

  1. 传递的值与数据库中已有的值相同。我知道rowCount()在这种情况下返回0.
  2. 我尝试更新的行在数据库中不存在。据我所知,rowCount()在这种情况下也会返回0.

我是否被迫在 UPDATE 之前添加 SELECT 语句,以确定我尝试更新的记录是否确实存在?或者对于这类事情还有另一种常见的做法吗?

我一直在仔细阅读文档,但找不到结论性的答案:http://php.net/manual/en/pdostatement.rowcount.php

我遇到过这个 StackOverflow 答案,这表明 rowCount() 在某些情况下可能会返回 NULL,但我认为它不适用于我的情况: 看为什么在更新表后不修改现有数据的情况下 PDO rowCount() 返回 0?

从这个问题的评论来看:

如果数据未被修改,则 rowCount 将为零。如果 数据被修改时,rowCount 将为 1 或更高。如果有一个 错误,rowCount 将为 null 或 false 或非零值。

UPDATE我发现了另一个问题,在下面的评论中给出了该提议的示例:使用 PDO 获取插入和更新 ID

UPDATE2另一个问题提出了另一种解决方案,通过PDO::MYSQL_ATTR_FOUND_ROWS PDO - 检查行是否已更新?


您可以将条件添加到“where”子句中,例如“and ColumnToUpdate 'NewValue'”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UPDATE 查询后的 PDO rowCount() 可以显示“未进行更改”和“不存在的行”之间的区别吗? 的相关文章

  • PHP 5.4 PDO 无法使用旧的不安全身份验证连接到 MySQL 4.1+

    我知道有很多类似的问题 事实上我已经阅读了所有 9 个问题 但是 他们都没有解决我的问题 我有一个共享托管包 最低限度 我的包中包含域名和托管 MySQL 服务器的单独 IP 地址 为了开发 我正在使用http localhost 与 PH
  • 如何获取 JDBC 中 UPDATE 查询影响的所有行?

    我有一项任务需要使用更新记录PreparedStatement 一旦记录被更新 我们知道更新查询返回计数 即受影响的行数 但是 我想要的不是计数 而是受更新查询影响的行作为响应 或者至少是受影响的行的 id 值列表 这是我的更新查询 UPD
  • IMAP 和 PHP - 从已发送文件夹和收件箱文件夹中获取所有电子邮件

    我正在尝试获取接收和发送的所有电子邮件 并使用 PHP 将其写入 mySQL 数据库 我使用的主机名是 hostname imap gmail com 993 imap ssl INBOX 它仅引用收件箱 并成功抓取收到的电子邮件 为了抓取
  • 为什么我在 WinForms 列表框中得到“System.Data.DataRowView”而不是实际值?

    每当我运行代码并尝试查看highscore我在列表框中得到的只是System Data DataRowView 谁能明白为什么吗 Code MySqlConnection myConn new MySqlConnection connStr
  • 选择每组最新的项目[重复]

    这个问题在这里已经有答案了 可能的重复 检索每组中的最后一条记录 https stackoverflow com questions 1313120 retrieving the last record in each group 我有 2
  • 如何查找所有mysql表之间的所有关系?

    如何找到MySQL所有表之间的所有关系 例如 如果我想知道大约有 100 个表的数据库中表的关系 有什么办法知道这个吗 从编程角度来说 更好的方法是从以下位置收集数据 INFORMATION SCHEMA KEY COLUMN USAGE表
  • 无法从 Web 主机本身以外的任何地方连接到任何 Web 主机的 MySQL 数据库

    我有 2 个不同的虚拟主机 pagodabox 000webhost 都是免费的 并且我已经设置了localhost与MySQL 我已经在他们三个上安装了 wordpress 它们在自己的域中工作得很好 即 什么时候localhostwor
  • 软删除最佳实践(PHP/MySQL)

    Problem 在处理产品和订单的 Web 应用程序中 我想维护前员工 用户 与他们处理的订单之间的信息和关系 我想维护过时产品和包含这些产品的订单之间的信息和关系 然而 我希望员工能够整理管理界面 例如删除前员工 过时的产品 过时的产品组
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • 重用 PDO 语句 var 会使进程崩溃

    我重用一个变量来存储两个不同的 PDO mysql 语句 stmt dbh gt prepare SELECT stmt gt execute stmt dbh gt prepare UPDATE crash here Error in o
  • 关于 Cassandra 与 MySQL 的一些建议

    几天前我在这里问了一个问题 得到了一些非常好的答案 我正在考虑做一个带有个人资料 个人简介等的facebook风格的网站 并询问我是否应该使用mysql 答案是使用Cassandra 因为好多了 我只是问这是每个人都会建议的 只是我对mys
  • 使用多个 WHERE 子句更新 Codeigniter 中的批次

    我查看了 CI 用户指南来了解如何处理update batch 并且它似乎只接受一个索引来匹配要更新的行 但在我的例子中 我需要指定两个索引 例如lang and id page我一起用作索引 这样的lang en id page 115是
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro
  • 用户“root”@“localhost”的 Spring Boot MySql 访问被拒绝

    我有 Spring Boot 应用程序并部署到远程服务器 该应用程序在我的计算机上运行 MySQL连接URL 用户名和密码本地和远程MySQL相同 数据库和应用程序在同一台机器上 我检查了我的连接信息并执行了以下命令 GRANT ALL P
  • 从两个表中搜索然后删除

    我有两个包含成员数据的表 与 member id 列链接 我需要搜索所有记录email列以 pl 结尾 然后 我需要为此删除两个表中的所有记录 基于 member id 是否可以通过一条 SQL 语句完成此操作 SELECT member
  • 使用 Python 2.7 和 MySQLdb 将二进制数据插入 MySQL 中的 blob 列时如何避免编码警告

    我在将二进制数据插入到longblob使用 Python 2 7 中的 MySQLdb 在 MySQL 中的列 但我收到一个编码警告 我不知道如何解决 test py 11 Warning Invalid utf8 character st
  • MySQL获取最后10条记录中的第一条记录

    在Mysql中 我试图获取最后10条记录中最旧的记录 为了得到最后 10 个我会简单地做SELECT FROM table ORDER BY id DESC LIMIT 10 为了获得最旧的 我只需使用 ASC 顺序 我需要首先按 DESC
  • 不唯一的表/别名

    因此 我尝试使用多个联接来运行此查询 以获得我想要的精确行 但我不断收到此错误 不唯一的表 别名 ss prices 我正在运行的查询 select ss accounts id ss accounts bot acc id ss acco
  • 为什么 sql 字段名称中不应该包含逗号?

    人们一直告诉我列名中不应包含空格 我只是想知道 这是为什么 这是我为学校创建的一些数据库表遇到的问题 字段名称包括 Preble 和 Darke 相反 它们需要是 普雷布尔县 俄亥俄州 和 达克县 俄亥俄州 如果它们是行名称 我只需创建一个
  • ASP.NET API:尚未为此 DbContext 配置数据库提供程序

    我正在尝试从我的 Net Core API 项目连接到 MySql 数据库 这是我的上下文类 public class MyContext DbContext public MyContext public MyContext DbCont

随机推荐

  • 使用 R Shiny 框架的密码字段

    我打算为我的应用程序登录 为此我需要一个密码字段 我不知道闪亮是否用于此目的 但仍然可能吗 code for a simple text box is textInput id label value 但是有可能有密码字段吗 另外 与此同时
  • WPF 样式按钮 MouseOver 问题

    我正在尝试在按钮上制作一个简单的鼠标悬停效果 当鼠标悬停时它确实会改变颜色 但颜色会立即更改为默认按钮背景 我如何覆盖此行为 这是我的代码 Style myBtnStyle new Style Trigger bla new Trigger
  • Azure 导出 SQL 数据库示例

    鉴于 Microsoft 不推荐使用以前的导出 SQL DB 的方法 他们提出了一个建议的示例here subscriptionId YOUR AZURE SUBSCRIPTION ID Login AzureRmAccount Set A
  • 如何对 CursorLoader 结果进行排序?

    我使用 CursorLoader 查询结果 这不是我想要在 ListFramgenet 中显示的顺序 怎么排序呢 我用它来设置适配器 mAdapter new SimpleCursorAdapter getActivity android
  • 动态添加按钮到对话框

    有没有办法动态添加按钮到 jquery ui 中的对话框 我尝试使用 this add button 有时您也想稍后添加按钮 var mydialog result of jqueryui dialog var buttons mydial
  • 图像边框半径在 css 转换期间不起作用

    我在用着border radius 50 使图像变圆 默认情况下 图像会被模糊和缩放 带有隐藏的溢出 悬停时它将消除模糊和缩放 但是 当我在元素上使用 CSS 过渡时 它会在过渡期间暂时显示溢出 http jsfiddle net jonn
  • WatchOS 2:“无法安装手表应用程序”“启动‘TestApp WatchKit 应用程序扩展’时出错”

    每次我尝试在 Xcode 7 beta 4 中安装 watchOS 2 应用程序时 我都会在 iOS 上收到 AlertView 弹出错误 无法安装手表应用 TestApp 已安装在您的 iPhone 上 但 Apple Watch 的 T
  • 如何将 php 放入 JavaScript 中?

    我已经尝试过 但它不起作用 这里是tutorial我为此目的使用过 尝试这个
  • 使用 php 创建 api

    我想使用php开发一个简单的api 我的功能是 如果有人输入一些所需的值 那么他们将从我网站旁边的算法中获得计算结果 我不知道从哪里开始 并且也没有获得任何使用 PHP 的 API 示例代码 听起来您想创建一个其他人可以连接 发送答案和检索
  • 用于触摸手势的优秀 JavaScript 库或 jQuery 插件是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我不需要像 Sencha
  • 让 ng-repeat 在 AngularJS 的 $interpolate 服务中工作

    我正在使用 Bootstrap 的 AngularJs UI 组件 我想将填写好的模板插入到弹出窗口功能的数据元素之一中 这适用于查找不在 ng repeat 内部的所有元素 如何让 ng repeat 元素在插值模板中工作 我有一个笨蛋h
  • 使用 pdfbox 编辑 pdf 页面

    我如何通过在我已经知道的像素特定位置书写来使用java和pdfbox编辑pdf页面 我尝试过这个 但它会覆盖 PDDocument document null try document PDDocument load new File x
  • 使用什么原语来实现同步关键字?

    当我们使用synchronizedjava中的关键字 究竟使用哪个同步原语 Lock Semaphore Monitor Mutex EDIT JVM如何在本机级别实现锁 在字节码级别 java有monitorenter and monit
  • File.WriteAllText 不保留换行符

    这段代码的输出 string fileDateTime StepsGA DateTime Now ToString dd MM yyyy HH mm ss txt string fname System IO Path Combine Sy
  • 从 URL 获取 blob 并写入文件

    我试图fetch来自服务器的一些二进制数据 MP3 然后将其存储在文件中 var fs require fs var fetch require node fetch fetch audioUrl method GET headers Ac
  • 如何使用 google reader API 标记已读项目?

    我一直在为谷歌阅读器开发一个客户端 一切工作正常 除了我无法编辑条目以添加 加星标 和 已读 等标签 code google com p pyrfeed wiki GoogleReaderAPI 和 www niallkennedy com
  • 为什么在 django 设置中将 debug 设置为 false 会阻止 Heroku 应用程序在开发和生产中加载?

    在我的设置中我已经设置了DEBUG False但这反而在开发和生产中生成了 500 错误 所以我环顾四周 发现了这个 设置 DEBUG False 会导致 500 错误 并尝试了一下 ALLOWED HOSTS www heroku com
  • Python 类是否像其他语言一样支持事件?

    我正在开发我的第一个 Python 项目 并且我已经错过了课堂上的活动 也许它在Python中甚至不被称为事件 但我想在我的类中创建 组 可以向其中添加函数引用 在我的班级中的某个时刻 我的组中的所有函数引用都会执行 这是Python内置的
  • PHP JSON 大整数

    我正在使用 json encode 将我的 php 多维数组转换为输出 json 通常 此函数会将所有值转换为字符串 为了确保整数值作为整数值发送到 javascript 我使用数字检查 json json encode data JSON
  • UPDATE 查询后的 PDO rowCount() 可以显示“未进行更改”和“不存在的行”之间的区别吗?

    我正在使用 PDO 进行更新查询 我想知道我的更新查询是否没有更改数据库中的任何内容 因为 传递的值与数据库中已有的值相同 我知道rowCount 在这种情况下返回0 我尝试更新的行在数据库中不存在 据我所知 rowCount 在这种情况下