Symfony2.3 带 IN 子句的原始 sql 查询

2023-12-14

我试图使用 IN 子句的学说实体管理器运行原始 SQL 查询,如下所示。

    $idSArray  = Array ( [0] => 1 [1] => 2 )

    $stmt = $this->getDoctrine()->getEntityManager()
    ->getConnection()
    ->prepare('SELECT t1.id , t1.name , t2.start_date , t2.end_date 
    FROM table1 t1 , table2 t2 
    WHERE t1.id = t2.matchId AND  t1.id IN (:ids)');


    $params = array(
      'ids'  => implode( ",", $idSArray )
    );
    $stmt->execute($params);
    $results = $stmt->fetchAll();

但我只得到 Id = 1 的结果。如果我将 WHERE IN 条件硬编码为

     WHERE t1.id = t2.matchId AND  t1.id IN (1,2)');

然后获取两个 Id 的结果。谁能告诉我我在传递 $params 数组时做错了什么。我还打印了输出 1,2 的内爆结果。所以我无法找到错误以及使用 IN 子句执行原始 sql 查询的方法。


Answer:

  • 参数转换一览表
  • DoctrineDBAL类型转换

所以你至少犯了两个错误。首先是 @Alarid 所说的:你不应该破坏你的数组。第二个是你必须使用DoctrineDBALTypes Conversion for IN clause运行准备好的语句时。

最后你的查询是这样的:

$stmt = $this->getDoctrine()->getEntityManager()
        ->getConnection()
        ->prepare('SELECT t1.id , t1.name , t2.start_date , t2.end_date
        FROM table1 t1 , table2 t2
        WHERE t1.id = t2.matchId AND  t1.id IN (:ids)');

$stmt->bindValue('ids', $idSArray, \Doctrine\DBAL\Connection::PARAM_INT_ARRAY);
$stmt->execute();

或者替代方案:

$stmt = $this->getDoctrine()->getEntityManager()
    ->getConnection()
    ->executeQuery('SELECT t1.id , t1.name , t2.start_date , t2.end_date
        FROM table1 t1 , table2 t2
        WHERE t1.id = t2.matchId AND  t1.id IN (:ids)',
        array('ids' => $idSArray),
        array('ids' => \Doctrine\DBAL\Connection::PARAM_INT_ARRAY)
    )
;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2.3 带 IN 子句的原始 sql 查询 的相关文章

  • MySQL 中的 UDF 性能

    我注意到 当查询在 SELECT 或 WHERE 子句中调用 UDF 时 MySQL 查询执行时间的性能会呈指数级下降 有问题的 UDF 查询本地表以返回标量值 因此它们不仅执行算术表达式 而且充当相关子查询 我通过简单地删除 UDF 并使
  • 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是以下实例

    我创建了一个新的中间件来检查用户令牌我创建了中间件然后添加到 kernal php 但是当我尝试访问中间件中的 request 时我收到错误 这是我的中间件代码 namespace App Http Middleware use Illum
  • 与 PHP 相比,Python 与 HTML 的“流畅”程度如何?

    我正在考虑从使用 PHP 切换到使用 Python 来开发 Web 应用程序 但我想知道 Python 是否像 PHP 一样擅长在 HTML 中穿插 本质上 我发现它使用起来非常简单 直观将 PHP 放在我想要的位置 然后可以随意安排 组织
  • 如何在PHP中完成http响应并进行进一步处理?

    就我而言 我需要向客户端回显一个标志并发送一封电子邮件 现在客户端需要等待电子邮件发送 但我想把这两个步骤分开 该怎么做呢 你可以看一下异步运行 PHP 任务 https stackoverflow com questions 858883
  • PHP正则表达式替换链接url

    我需要添加href 之前http 如果这http 不遵循href or src 以下代码部分有效 部分意味着它考虑 a href 只但不src a s i a href target blank gt 0 a str 预先感谢各位的回复 s
  • phpenmod 显示其他 php 版本的路径

    我的 Ubuntu 机器上安装了 php 7 0 和 7 2 当我执行时php v 它告诉我我正在使用 php 7 2 在 Apache 上我还启用了 php 7 2 当我跑步时phpenmode zip 我明白了 WARNING Modu
  • json_decode 到自定义类

    是否可以将 json 字符串解码为 stdClass 以外的对象 不是自动的 但你可以按照老式的路线来做 data json decode json true class new Whatever foreach data as key g
  • 很简单的PHP加法问题

    我想我已经关注这个问题太久了 为什么这段代码打印 no 它应该打印 yes 不是吗 我在 PHP 5 3 和 PHP 5 2 上尝试过 都打印 no See 比较浮点数 http www cygnus software com papers
  • ORDER BY 之后的 GROUP BY

    我需要去做GROUP BY after ORDER BY 我不明白为什么 MySQL 不支持这一点 这是我的代码 SELECT pages id contents id language ORDER BY FIND IN SET langu
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • MySQL 中非空值的计数和分组

    我需要计算按特定 ID 分组的非空 我的意思是至少包含 1 个字符的字符串 行 例如 我的数据可能如下所示 form id mapping 1 value 1 1 1 value 2 2 2 NULL 3 value 3 我想计算每个表单的
  • 如何验证上传的文件是视频?

    我的服务器上有一些非常敏感的信息 因此安全性是一个大问题 用户需要能够上传视频 我知道允许用户上传文件会带来安全威胁 因为没有 100 的方法可以阻止他们上传非视频 但我显然可以选择服务器将保留哪些文件 我知道检查文件扩展名是不够的 检查
  • PHP 搜索部分字符串

    如何在键入时搜索部分字符串 不使用 MySQL 例如 MySQL 中的 LIKE 函数 但在搜索字符串时使用 PHP 例如 但这显然行不通 但是有没有一个函数可以搜索部分字符串 那太好了 EDIT 如果它在数组中怎么办 如果我使用 strp
  • Google Drive V3、Google API 客户端 2.0 - 批量上传失败

    使用 Google Drive V3 和 API v2 0 主分支进行批量上传失败 我已经修改了https github com google google api php client blob master examples batch
  • PHP + MySQL 队列

    我需要一个充当队列的简单表 我的 MySQL 服务器限制是我不能使用 InnoDB 表 只能使用 MyISAM 客户 工人将同时工作 他们每次都需要接受不同的工作 我的想法是执行以下操作 伪代码 job lt SELECT FROM que
  • 未知的表引擎“InnoDB”

    最近 我发现如果我有好的硬件 我可以最大限度地提高 mysql 的性能 由于我一直在使用 InnoDB 所以我在 my ini 中添加了额外的配置 以下是新添加的配置 innodb data file path ibdata1 10M au
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • 访问 PHP 数组对象受保护的属性

    我正在尝试在 Symfony2 中上传多个文件 我正在尝试访问以下请求对象 但无法获取参数属性 如何将文件一一上传 我得到的错误 致命错误 无法访问第 66 行 var www File src Webmuch FileBundle Ent
  • 使用 yaml 路由描述时如何在运行时获取 Symfony2 中的路由名称?

    在这里你可以找到我的n关于 Symfony2 的第一个问题 我正在与一个分页捆绑 https github com makerlabs PagerBundle wiki使用中提供的路由名称routing yml文件 从我的角度来看 这种方法
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att

随机推荐

  • Instruments(泄漏)和 NSDateFormatter

    当我使用 Instruments Leaks 运行我的 iPhone 应用程序并使用 NSDateFormatter 解析一堆 NSDate 时 我的内存会增加约 1mb 并保持不变 即使这些 NSDates 在解析后应该被释放 如果它们不
  • 负载均衡器“A 记录”条目在 GoDaddy 的 A 记录字段中不起作用

    我对在负载均衡器中使用 URL 以及通过 GoDaddy 使用它作为我的 DNS 条目的 A 记录有疑问 GoDaddy 不允许使用 URL 并坚持 A 记录是 IP 地址 而不是其他地址格式 但我在创建的负载均衡器中看不到此选项 只有一个
  • 将 django.test.LiveServerTestCase 的 live_server_url 与另一个字符串连接时出现类型错误

    每当我尝试构建一个基于字符串self live server url 我得到了蟒蛇TypeError消息 例如 我尝试过以下字符串构造 下面的形式 1 和 2 但我遇到了相同的情况TypeError 我想要的字符串是 Live Server
  • 如何使用vba创建数据透视表

    我是 vba 新手 正在尝试创建一个PivotTable使用 VBA 和 Excel 我想创建如下图所示的输入表 我正在尝试添加行标签region month number status和价值观是value1 value2 and tota
  • 将带有破折号字符的 punycode 转换为 Unicode

    我需要转换 punycodeNIATO OTABD to n i ato I found JavaScript 中的文本转换器前几天 但是如果中间有破折号 punycode 转换将不起作用 有什么建议可以解决 破折号 问题吗 我花时间创建了
  • 防止 UIAlertController 被解雇

    我正在添加一个UITextField to a UIAlertController 它显示为AlertView 在驳回之前UIAlertController 我想验证输入UITextField 根据验证 我想驳回UIAlertControl
  • 理解条件逻辑

    我正在编写一个 python 程序 它接受计划英语中的给定句子并从中提取一些命令 现在很简单 但我从命令解析器中得到了一些意想不到的结果 经过一番研究后 我的条件逻辑似乎没有按照我的预期进行评估 当然 这是一种非常不优雅的方法 而且太冗长了
  • 等待 form.submit() / POST 完成

    我陷入了一个非常奇怪的境地 解释起来很复杂 但我会尽力 问题详细解释 在每次顶部导航单击 绿色甜甜圈 圆圈 或下一步按钮时 我必须提交表单 如果存在且有效 如果无效 form valid 会触发验证错误并返回 false 将停止任何进一步的
  • 命名参数顺序对于 MySql .Net 数据提供者有意义吗?

    我发现在我的项目中命名参数的顺序是有意义的 我称这个过程为 CREATE PROCEDURE test TestProc in myText varchar 5 in myText2 varchar 100 BEGIN END 如果我添加这
  • 如何通过 StatEt Eclipse 插件使用“R Graph Builder”和“R Graphics”视图?

    我是 R 新手 想要在 Windows 7 上使用 Eclipse 插件 StatEt 和 Oxygen 2 Release 4 7 2 我尝试使用 R Graph Builder 创建示例图 我单击 播放按钮 并在R Code标签 此外
  • 在 WebAPI 客户端中每次调用创建新的 HttpClient 的开销是多少?

    应该是什么HttpClientWebAPI 客户端的生命周期 拥有一个实例是否更好HttpClient多次通话 创建和处置的开销是多少HttpClient根据请求 如下例所示 取自http www asp net web api overv
  • 在没有 Outlook 的情况下发送 Outlook 会议请求?

    我只是想知道是否可以在服务器上未安装 Outlook 并使用 COM 互操作 我想不惜一切代价避免在服务器上安装 的情况下向人们发送会议请求 我们在 Windows 2003 域中拥有 Exchange 2003 并且所有用户都是域用户 我
  • 使用executeUpdate()而不是executeQuery()进行SELECT查询

    for Ex class sample public static void main String a Class forName sun jdbc odbc JdbcOdbcDriver Connection con DriverMan
  • pythonpyderconda安装失败

    我是 Python 新手 现在我使用 Anaconda Spyder 作为我的主要 Python 发行版 我正在学习如何使用 conda 安装 更新软件包 当我阅读相关书籍并在网上搜索时 似乎我需要做的就是输入 conda install
  • Discord.js,无法读取 null 的属性“user”

    我有一个麻烦 我根本无法理解 该功能在我的服务器上运行 但在另一台服务器上不起作用 这是我的代码 const user message author let servericon message guild iconURL let serv
  • 打印表达式并回显它

    我的意思是定义一个函数print echo取代print 这样除了打印表达式的结果之外 它还打印表达式本身 如果我只是将表达式作为字符串传递并使用eval inside print echo 它不会知道调用者函数的任何局部变量 我当前的代码
  • 为什么 Clang 自动向我的函数添加属性?

    我有一段代码正在尝试将其转换为 LLVM 位代码 int main volatile double n 0 45 for int j 0 j lt 32 j n j return 0 我对其运行以下命令 clang O0 S emit ll
  • 如何在 JSF2 中禁用 .css 和 .js 等静态资源的缓存?

    我正在尝试设置一个项目以不缓存静态资源 css 和 js 对于某些人来说 我们似乎遇到了一些内部缓存问题 我希望这可以解决这个问题 我有一个相位监听器 基本上是这个的稍微修改的版本http turbomanage wordpress com
  • 如何为Python数据框中选定的列着色?

    我正在使用下面的代码将 df 导出到 Excel 我需要对输出 Excel 中的特定列进行着色 DF TO EXCEL from pandas import ExcelWriter writer ExcelWriter Output xls
  • Symfony2.3 带 IN 子句的原始 sql 查询

    我试图使用 IN 子句的学说实体管理器运行原始 SQL 查询 如下所示 idSArray Array 0 gt 1 1 gt 2 stmt this gt getDoctrine gt getEntityManager gt getConn