在 PHP PDO 中如何获取 PostgreSQL upsert 查询的“RETURNING”子句值

2023-12-01

我用 postgreSQL 编写了这个 upsert 查询

$statement = 'INSERT INTO "CharactersUnlockToBuyLevels"
                ("CharacterId", "LevelId", "AmountToBuy", "EagleStatueId", "Location", 
                 "MapCoordinateTop", "MapCoordinateLeft")
              VALUES 
                (:CharacterId, :LevelId, :AmountToBuy, :EagleStatueId, :Location, 
                 :MapCoordinateTop, :MapCoordinateLeft)
              ON CONFLICT
                ("CharacterId")
              DO UPDATE 
                SET 
                  "LevelId" = EXCLUDED."LevelId",
                  "AmountToBuy" = EXCLUDED."AmountToBuy",
                  "EagleStatueId" = EXCLUDED."EagleStatueId",
                  "Location" = EXCLUDED."Location",
                  "MapCoordinateTop" = EXCLUDED."MapCoordinateTop",
                  "MapCoordinateLeft" = EXCLUDED."MapCoordinateLeft"                            
              RETURNING "CharacterUnlockToBuyLevelId"
             ';

该查询工作正常,如果我在 PgAdmin 中运行它,我会按预期返回“CharacterUnlockToBuyLevelId”。但是,如果我准备它并使用 PHP 的 PDO 执行它,那么我似乎无法取回返回值。

$stmt = $this->db->prepare($statement);
$returnedId = $stmt->execute(array(
     'CharacterId' => $characterId,
     'LevelId' => $unlockMethod['LevelId'],
     'AmountToBuy' => $unlockMethod['AmountToBuy'],
     'EagleStatueId' => $unlockMethod['EagleStatueId'],
     'Location' => $unlockMethod['Location'],
     'MapCoordinateTop' => $unlockMethod['MapCoordinateTop'],
     'MapCoordinateLeft' => $unlockMethod['MapCoordinateLeft'],
));

这只是返回 true,所以$returnedId实际上不会保存 id,而只是保存 true 值。如何使用 PDO 的准备语句从 upsert 查询中获取 RETURNING 值?


from http://php.net/manual/en/pdostatement.execute.php:

公共 bool PDOStatement::execute ([ 数组 $input_parameters ] )

要获得返回的 val,请尝试fetchAll

$stmt = $this->db->prepare($statement);
$returnedId = $stmt->execute(array(
     'CharacterId' => $characterId,
     'LevelId' => $unlockMethod['LevelId'],
     'AmountToBuy' => $unlockMethod['AmountToBuy'],
     'EagleStatueId' => $unlockMethod['EagleStatueId'],
     'Location' => $unlockMethod['Location'],
     'MapCoordinateTop' => $unlockMethod['MapCoordinateTop'],
     'MapCoordinateLeft' => $unlockMethod['MapCoordinateLeft'],
));
$yourVal=$stmt->fetchAll();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PHP PDO 中如何获取 PostgreSQL upsert 查询的“RETURNING”子句值 的相关文章

  • 使用 php 获取当前月份的最后 3 个月

    我想获取当前月份最近 3 个月的名称 例如当前月份是八月 所以 我想要六月 七月 八月这样的数据 我已经尝试过这段代码echo date F strtotime 3 months 它只返回六月 如何使用 php 获取当前月份的最后 3 个月
  • facebook php - 如何获取专辑封面照片

    我需要使用 PHP SDK Facebook 获取专辑封面照片 我尝试 https graph facebook com ALBUM ID picture type album 但我得到默认图像 例如 获取用户 https graph fa
  • Yii2 异常:ApcCache 需要加载 PHP apc 扩展

    在高级模板前端的主配置中配置缓存组件时 我收到异常 在我的 php ini 上启用了扩展 rsults 如何解决此问题 前端 config main php cache gt class gt yii caching ApcCache ke
  • PHP 或 WAMP 不确定是什么

    我已经安装了 WAMP 服务器 2 0 PHP 5 4 3 安装WAMP后我已经重新启动了所有服务并且可以打开 phpinfo 显示良好 phpmyadmin 它也显示得很好 我可以使用数据库 然而 当在 Chrome 中运行简单的 php
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • Google Cloud SQL - Postgresql 存储不断增长

    我最近开始修补 Google Cloud SQL PostgreSQL 我创建了一个空数据库 在 4 5 天的时间里 其存储使用量已增长到超过 20GB 它一直在上升 但数据库中没有数据 它甚至没有被使用 有谁知道会发生什么以及如何阻止它
  • 为什么验证不起作用并跳转到另一个页面?

    我写了一个customer display php来验证数据 到目前为止只有名字 但无论名字字段是否为空 网页都会跳转到customer search php并且没有更改数据库中的信息 为什么
  • 更改迁移中的自动​​增量值(PostgreSQL 和 SQLite3)

    我有一个托管在 Heroku 上的项目 想要更改表的自动增量起始值 我在本地使用 SQLite3 Heroku 使用 PostgreSQL 这是我在迁移中所拥有的 class CreateMytable lt ActiveRecord Mi
  • PHP Solr PECL 扩展安装

    我已经使用命令安装了 pecl solr pecl install solr 和梨使用 wget http pear php net go pear phar php go pear phar 重启Apache后 我仍然收到错误 Fatal
  • fgetcsv 在特定行打开?

    有没有办法使用 fgetcsv 在特定行上打开 我有一个非常大的 csv 想通过 ajax 一次运行大约 100 行 我可以轻松停止 while 循环 但如何在特定行上打开 或者这是不可能的 从第 100 行开始读取没有简单的方法 但您可以
  • postgreSql 中特定时间后表更新

    我已经在 postgres 中创建了表 现在我想在特定时间 例如 1 小时 后更新一行 我看到很多问题 例如 https dba stackexchange com questions 56424 column auto updated a
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • phpunit测试调用其他需要mock的类方法的方法

    我正在尝试创建一个非常标准的单元测试 在其中调用一个方法并断言它的响应 但是我正在测试的方法调用同一类中的另一个方法 该方法做了一些繁重的工作 我想模拟该方法 但仍按原样执行我正在测试的方法 仅使用从调用另一种方法返回的模拟值 我简化了示例
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • 如何在 PostgreSQL 中使用具有多个值的 SQL LIKE 条件?

    有没有更短的方法来查找多个匹配项 SELECT from table WHERE column LIKE AAA OR column LIKE BBB OR column LIKE CCC 这个问题适用于 PostgreSQL 9 1 但如
  • WordPress 插件中的类自动加载器

    我想编写一个类自动加载器以在 WordPress 插件中使用 该插件将安装在多个站点上 我想尽量减少与其他插件发生冲突的机会 自动加载器将是这样的 function autoload name some code here 我的主要问题是
  • 从数据库填充复选框

    我有两个表 第一个由与名称关联的 id 组成 1 汽车 2 火车 3 普通 ETC 第二个表由两个字段 user id 和第一个表中的 id 组成 例如 1 1 2 1 3 当用户转到该页面时 我试图重新填充选定的复选框 首先 您查询数据库
  • 检查 $_POST 数据

    我正在对表单进行一些垃圾邮件检查 下面的代码在我的本地主机上正常工作 如果为 true 则重定向到 google com 但是 当它在生产服务器上时却不起作用 执行脚本的其余部分并且不重定向到 Google com if POST SERV

随机推荐

  • 谷歌字体字体粗细为 100 不起作用

    我有一个 Android 游戏 它使用谷歌字体中的 Raleway 字体 在游戏中它看起来不错 我也想在网站上使用该字体 但字体显示不一样 我在游戏中使用Raleway Thin 这与我想在网站上使用的相同 我遇到的问题是细字体并不像游戏中
  • sqlsrv_connect:未找到数据源名称且未指定默认驱动程序

    我在将 PHP 与远程计算机上运行的 SQL SERVER 2008 连接时遇到困难 我有 php 版本 5 4 3 和 apache 2 2 22 我的计算机上已经运行了 SQL SERVER 2008 我的 wamp bin php p
  • 如何为 GlassFish 域指定 JDK?

    我已经安装了 GlassFish 2 1 1 我安装了 1 5 和 1 6 JDK 尽管我的 JAVA HOME 变量设置为 1 5 版本 并且 java version 和 javac version 都显示 1 5 但每当我启动 gla
  • openCV c++:使用 XgBoost(Adaboost 分类器)时出现问题

    我正在创建一个应用程序 用于对城市环境图像中的人类进行分类 我通过以下方式训练分类器 int main int argc char argv STEP 2 Opening the file 1 Declare a structure to
  • 课堂上的陈述作业

    class foo object def enter self print Enter def exit self type value traceback print Exit def method self print Method w
  • Wildfly 在 EAR 之间共享会话?

    我在 2 个独立的 EAR 中有 2 个 WAR 应用程序 我想将它们部署在 Wildfly 10 JBoss 7 EAP 的单个实例中 我如何在两场战争之间共享会话 身份验证 Ex EAR1 WAR1 EJB libs EAR2 WAR2
  • 如何在matlab中计算指数而不得到inf?

    标题说明了一切 我想在 matlab 中计算一个大数字的指数 但我得到了溢出 它只返回无穷大 gt gt 100 1000 ans Inf 上次我检查时 100 1000 明显小于无穷大 正如 Daniel 已经指出的那样 这个数字太大了
  • 如果不允许跨域ajax调用那么你应该如何使用谷歌电子表格API

    如果不允许跨域ajax调用那么你应该怎么做this 注意 链接已废弃 问题已更新为相关原始页面的相关部分 来自链接 开发人员指南 协议 v 2 0 Google Spreadsheets API 添加一行 要向表中添加一行 首先创建一个
  • 如何检测用户何时清除应用程序的通知

    我的应用程序有通知功能 当我收到通知时 我的应用程序图标中会显示一个徽章 据我所知 当我的应用程序处于后台时 由于用户没有单击通知中心的通知 因此我的应用程序不知道它有通知 所以它不能改变徽章号码 也来自这个主题 检测用户何时清除通知中心的
  • 执行 del 批处理文件时排除 temp 内的文件夹

    如果我想排除要删除的文件夹内的文件夹 我应该在 DEL 批处理文件中添加什么 我有这个代码来删除临时文件夹的所有内容 DEL F Q C temp 现在 我想排除一个名为导入文件夹里面 无论它是否存在于临时文件夹中 都不应被删除 我该怎么做
  • 如何在编译的 dart 中请求全屏

    我正在玩一个 Dart 应用程序 试图让全屏模式正常工作 我的 HTML 不包括样板 div Clicking this should cause it to go fullscreen div 我的飞镖代码 import dart htm
  • 您需要在此活动中使用 Theme.AppCompat 主题(或后代)。更改 Theme.AppCompat 会导致其他错误

    我在我的应用程序中使用 appcompat v22 1 0 并使用工具栏 我使用时一切都很好Theme AppCompat Light NoActionBar 当我开始实施时AlertDialog 它会产生这样的错误 java lang I
  • 在 AngularJS 中从父控制器调用指令控制器的方法

    我正在使用 AngularJS 并且我有一个指令 它有自己的控制器 它继承了父控制器的范围 例如 请考虑以下情况 function ParentCtrl scope aMethod function DO SOMETHING functio
  • 表视图单元格按钮关闭是否需要弱自我

    为了避免保留循环 将使用 weak self in在 UITableViewCell 按钮操作中是否有必要 例子 在视图控制器中cellForRow cell buttonAction cell weak self in self some
  • 如何将表单提交事件传播到自定义指令的父级?

    我有一个简单的 AngularJS 项目 我从用户那里获取输入数据并根据该数据生成图表 我试图弄清楚如何组织代码 使其符合MVC设计模式 特别是 我一直在弄清楚如何将表单的提交事件传播到自定义指令的父级 我正在寻找某种回调机制 似乎有多种选
  • 序数尺度行为

    我想创建一个序数尺度 范围和域之间具有一一对应的关系 我希望不属于该域的值 字符串不会返回任何内容 相反 我得到以下行为 var x d3 scaleOrdinal domain a b c range 10 20 30 x d 10 x
  • CardLayout 的父容器/面板

    我如何获得任何面板的 容器 面板CardLayout 也就是说 如果面板是一张卡片 在另一个 容器 面板中 那么如何从卡中获取对此 容器 面板的引用 这就是我正在做的 public class LogInPanel extends java
  • 删除所有不符合特定条件的数组元素

    我一直在调查array map但不确定这是否是最好的方法 我目前从我的返回以下数组scandir Array 0 gt 1 gt 2 gt DS Store 3 gt post my first test post html 4 gt po
  • 什么是休息?有点困惑[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我假设 REST 是一种 Web 服务 但我的想法似乎是错误的 那么 什么是 REST 我已经通读了维基百科 但仍然无法完全理解它 为什么很多地方将 API 称为 REST AP
  • 在 PHP PDO 中如何获取 PostgreSQL upsert 查询的“RETURNING”子句值

    我用 postgreSQL 编写了这个 upsert 查询 statement INSERT INTO CharactersUnlockToBuyLevels CharacterId LevelId AmountToBuy EagleSta