PDO PHP bindValue 不起作用

2023-11-24

我知道这个问题已经被问了 1000 次了,但出于某种原因,我继续用头撞墙。

这有效:

$sql = 'SELECT a.eventCode, a.eventTime, a.teamCode, a.playerCode, b.lastName, b.firstName, b.number, a.xCoord, a.yCoord, a.id ';
$sql = $sql . 'FROM events a, players b ';
$sql = $sql . 'WHERE a.regGUID in ( ' . $regGUID . ' ) and ';
$sql = $sql . 'a.playerCode=b.playerCode and a.gameCode = "' . $game . '" order by a.eventTime desc, a.actionCode asc'; 
$stmt = $db->prepare($sql);
$results = $stmt->execute();

这不:

$sql = 'SELECT a.eventCode, a.eventTime, a.teamCode, a.playerCode, b.lastName, b.firstName, b.number, a.xCoord, a.yCoord, a.id ';
$sql = $sql . 'FROM events a, players b ';
$sql = $sql . 'WHERE a.regGUID in ( :regGUID ) and ';
$sql = $sql . 'a.playerCode=b.playerCode and a.gameCode = :game order by a.eventTime desc, a.actionCode asc'; 
$stmt = $db->prepare($sql);
$stmt->bindValue(':regGUID', $regGUID, PDO::PARAM_STR);
$stmt->bindValue(':game', $game, PDO::PARAM_STR);
$results = $stmt->execute();

我缺少什么?谢谢


问题就在这里:

$sql = $sql . 'WHERE a.regGUID in ( :regGUID ) and ';
$stmt->bindValue(':regGUID', $regGUID, PDO::PARAM_STR);

我假设 $regGUID 是用逗号分隔的带引号的字符串列表。

每个查询参数仅接受一个标量值。不是lists的价值观。

所以你有两个选择:

  1. 继续插入 $regGUID 字符串,即使您使用其他标量值的参数也是如此。但您仍然要小心避免 SQL 注入,因此您必须正确形成 $regGUID 字符串。您不能只对整个字符串调用 PDO::quote(),这会使其成为包含 UUID 和逗号的单引号字符串。您必须确保每个 UUID 字符串都被转义并单独引用,然后将列表一起内爆并将其插入到 IN 子句中。

    $regGUIDs = explode(',', $regGUID);
    $regGUIDs = array_map(function ($g) { return $db->quote($g); }, $regGUIDs);
    $regGUID = implode(',', $regGUIDs);
    $sql = $sql . 'WHERE a.regGUID in (' . $regGUID . ') and ';
    
  2. explode()将 $regGUID 放入一个数组中,并为数组中的每个元素添加一个查询参数。插入查询参数占位符的动态列表。

    $regGUIDs = explode(',', $regGUID);
    $params = array_fill(1, count($regGUIDs), '?');
    $sql = $sql . ' WHERE a.regGUID in ( ' . implode(',', $params) . ' ) and ';
    

您可以在数组的循环中使用bindValue(),但请记住其他参数也应该按位置绑定,而不是按名称绑定。 PDO 存在一些错误,当您尝试在同一查询中混合两种不同样式的参数时,它会感到不高兴。

我没有使用bindValue(),而是将参数值数组传递给PDOStatement::execute(),这要容易得多。

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

PDO PHP bindValue 不起作用 的相关文章

  • 在上下文中提取搜索字符串

    我正在尝试执行 MySQL 查询 在上下文中提取搜索字符串 因此 如果搜索是 mysql 我想从 body 列返回类似的内容 下载后只需几分钟MySQL安装程序即可使用 这就是我现在得到的 但它不起作用 因为它只是从正文字段中获取前 20
  • 如何使用wireshark清晰捕获mysql查询sql

    因为我们使用远程开发Mysql服务器 所以不能轻易检查查询sql 如果使用本地服务器可以tail f general log file查看调用某个http接口时执行了哪些sql 所以我安装了一个wireshark捕获这些从本地发送的查询sq
  • Laravel 5.4 升级 - 违反完整性约束 - 列不能为空

    奇怪的是 所有这些都在 5 2 中工作 但我不知道可以改变什么来实现这一点 下面是错误和正在插入的数组 SQLSTATE 23000 Integrity constraint violation 1048 Column gender can
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • PHP、jQuery 和 Ajax 调用乱序

    我正在使用 jQuery 进行 Ajax 调用 我有 x 数量的 Ajax 调用附加到 div 这些 Ajax 加载请求是由 PHP foreach 循环生成的 问题是它们渲染的顺序不正确 它们被设置在数组中
  • 删除 woocommerce 店面主页标题 php

    我正在使用 woocommerce 的店面主题 我需要用 php 删除主页标题 h1 我知道 css 解决方案 但我不想使用它 因为我想将 h1 添加到该页面的其他位置 并且在一个页面中包含 2 个 h1 对 seo 不利页 我也知道删除页
  • MySQL Python 关于重复键更新值

    我正在研究使用 python 将 JSON 数据上传到 MySQL 我需要在插入语句中包含 ON DUPLICATE KEY UPDATE VALUES 但在 Python 中遇到了问题 如果我运行以下代码 一切正常 import json
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • 具有更改用户代理上下文的 file_get_contents 不起作用

    我正在尝试获取页面的阅读数和点赞数 网址是 https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg 您必
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • Windows iis 7.0 上的 APC 不稳定

    我的 IIS 非常不稳定 因为它总是由于某种与 APC 相关的原因而重新启动 服务器的规格如下 Intel R Xeon CPU 3GHZ 3GHZ 2GB RAM 64bit APC 和服务器规格 3 1 7 dev PHP Versio
  • 在MySQL中生成随机字符串

    我正在尝试使用函数在 phpmyadmin 中获取随机字符串 我有以下代码 CREATE FUNCTION randomPassword RETURNS varchar 128 BEGIN SET chars ABCDEFGHIJKLMNO
  • 使用 fopen() 包装器创建 ZIP 文件

    如何使用以下命令创建 ZIP 文件fopen 包装器 http es php net manual en wrappers compression php 这显然是not道路
  • 如何确保在 PHP 的“foreach”循环中重置该值?

    我正在写一个简单的 PHP 页面和一些foreach使用了循环 以下是脚本 arrs array a b c foreach arrs as arr if substr arr 0 1 b echo This is b End of fir
  • 无法在 mysql-apt-config [Ubuntu 14.04] 中选择“确定”

    我使用的是 Ubuntu 14 04 sudo apt get update总是给我这个选项来配置 mysql apt config 我尝试选择版本 按 tab gt 在 确定 上突出显示的键 按 Enter 但没有任何反应 它再次返回并突
  • 显式删除会话cookie会产生什么影响?

    我使用 php session 来维护用户的会话 Session 在登录后创建 在注销或超时后销毁 我需要管理面板中的一个选项来强制注销任何用户 如果他在网站上处于活动状态 我怎样才能做到这一点 我正在考虑删除临时会话文件 这应该有效地破坏
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • 谷歌日历手表过期时间超过1个月怎么办?

    我将我的 CRM 系统与 Google 日历同步 为此 我要求push notifications从我的用户 Google 日历到我的系统 我已经成功创建了手表 并将过期时间设置为2030年 但是当我收到手表事件的响应时 它显示手表的过期时
  • 如何在 Carbon Laravel 中添加日期和另一个日期?

    在我的 laravel 项目中 我想将日期时间增加到前一个日期时间 这是我的代码 expire order 0 gt expire date new Carbon now gt addMonths 6 这两行的结果是 2018 01 28

随机推荐

  • 我可以在一个 Web 应用程序中拥有两个 web.xml 文件吗?

    我可以拥有一个包含多个 web xml 文件的应用程序吗 并且两个应用程序可以有父子关系从而有两个web xml吗 对于低于 servlet 3 0 的版本 则不能 如果您使用的是 3 0 则有一个可能性 在 JSR 315 Java Se
  • Azure Powershell:获取服务的公共虚拟IP

    是否可以使用 powershell 获取 azure 服务的公共虚拟 IP VIP 一种方法是使用 Get AzureEndpoint 命令 Get AzureVM Name thevmname ServiceName theservice
  • 面向对象的c++ win32?

    我想创建自己的类来处理创建窗口和窗口过程 但我注意到窗口过程必须是静态的 我现在想知道是否可以使窗口过程面向对象 我读过一些关于面向对象窗口的教程 但它们总是使过程静态 那有什么用 任何有关如何解决此问题的链接或信息将不胜感激 thanks
  • 如何在数据库中存储图像的位置?

    我有一个颜色列表 其中包含我想要向特定用户显示的纹理 因此我需要加载特定用户拥有的颜色的图像 颜色的信息包含在 ObjecDTO 中 其中一个属性是其图像小路 我的问题是我应该如何在数据库中存储图像路径 是否有任何特殊规则 例如 由于数据库
  • Spring Batch“默认”上下文变量是什么?

    In the 春季批次步进范围文档 存在三个无法解释的 spring batch 上下文映射 jobParameters jobExecutionContext and stepExecutionContext Springsource示例
  • MVC 自定义路由中的多个级别

    我正在尝试构建自己的小cms 我创建了一个抽象 pageBase 类 由 Static Reviews Articles News 继承 每个都有自己的控制器方法 我的问题是我需要允许管理员定义他自己的自定义路径级别 例如 news loc
  • 从字符串中提取格式不一致的日期(日期解析,NLP)

    我有一个很大的文件列表 其中一些文件名中嵌入了日期 日期的格式不一致且通常不完整 例如 Aug06 Aug2006 August 2006 08 06 01 08 06 2006 011004 等 除此之外 某些文件名具有不相关的数字 看起
  • 多线程和多进程的性能差异

    几年前 在Windows环境下 我做了一些测试 让CPU计算密集型 内存访问密集型 I O访问密集型应用程序的多个实例运行 我开发了2个版本 一个是在多处理下运行 另一个是在多线程下运行 我发现多处理的性能要好得多 我在其他地方读过 但我不
  • window.history.back() 不起作用。

    我无法让它发挥作用 我已经尝试了很多年了 请帮我
  • 带有 AVAudioConverterInputBlock 的 AVAudioConverter 在处理后会出现音频断断续续的情况

    我正在尝试将音频缓冲区转换为不同的格式 并且我正在使用 AVAudioConverter 当您具有相同的采样率并且不需要使用 AVAudioConverterInputBlock 时 AVAudioConverter 会完成这项工作 但如果
  • 查找 CSS 未应用的规则

    我有一个很大的 CSS 样式表 大约 6500 行 有什么方法可以确定哪些规则不适用于给定页面 firefox 插件 Web 实用程序或其他东西 Thanks PD 使用 Firebug 我可以找到哪些规则适用 但我无法找到哪些规则不适用
  • 有人可以在休眠状态下向我解释一下@MapsId吗?

    有人可以向我解释一下吗 MapsId冬眠时 我很难理解它 如果能用一个例子来解释它 以及它最适用于哪种用例 那就太好了 这是一个很好的解释对象数据库 指定为 EmbeddedId 主键 EmbeddedId 主键内的属性或父实体的简单主键提
  • 在for循环中使用@ref来获取元素引用

    我试图在不同的地方获取同一对象的位置 其中 使用 javascript 函数 我应该得到不同的顶部位置 但这不是场景 脚本代码 Index razor代码 inject IJSRuntime jsRuntime div for int i
  • 列出目录中具有特定扩展名的所有文件

    假设我想列出所有php目录中的文件 包括子目录 我可以在 bash 中运行 ls l find name php type f 这样做的问题是 如果没有php文件 执行的命令是ls l 列出所有文件和目录 而不是没有 这是一个问题 因为我试
  • iPhone/桌面应用程序的相同代码库

    我有一个 iPhone iPad 应用程序 我想将其移植到 MacOSX 我的大多数目标 C 类只要不包含 UIKit 内容就应该可以正常工作 显然 界面会有所不同 在 Xcode 中执行此操作的最佳方法是什么 开始一个全新的项目 添加新目
  • 如何在按键时获得本地化字符?

    我需要得到本地化字符 on keypress事件 例如 在捷克语键盘上 我需要输入 而不是 5 个字符 键码 53 请参阅捷克语键盘布局 有没有其他方法来获取字符而不使用文本输入和读取值 换句话说 有什么方法可以从事件对象中获取符合当前用户
  • 如何显示从 axios 请求返回的图像(React)?

    我正在使用 React 开发一个谷歌地图项目 我为 onClick 处理程序分配以下方法 getStreetView lat lng let url https maps googleapis com maps api streetview
  • 如何在onKeyPress期间获取输入文本框的文本?

    我试图在用户输入文本时获取文本框中的文本 jsfiddle游乐场 function edValueKeyPress var edValue document getElementById edValue var s edValue valu
  • 如何从 docker 容器“avahi 浏览”?

    我正在运行一个基于 ubuntu 14 04 的容器 并且我需要能够使用avahi browse在里面 然而 env root 8faa2c44e53e opt cluster manager avahi browse a Failed t
  • PDO PHP bindValue 不起作用

    我知道这个问题已经被问了 1000 次了 但出于某种原因 我继续用头撞墙 这有效 sql SELECT a eventCode a eventTime a teamCode a playerCode b lastName b firstNa