PDO-MySQL:在准备好的语句绑定上布尔值被转换为 1 或空字符串

2023-12-10

我正在尝试将一些布尔值插入到 JSON 类型列中。

$taskSql = "INSERT INTO Tasks (data, taskListId) VALUES (JSON_OBJECT('title', :title, 'done', :done), :taskListId)";
$taskStatement = $connection->prepare($taskSql);
$taskStatement->execute([":title" => $task->title, ":done" => $task->done, ":taskListId" => $id]);

这会导致执行以下 SQL。

-- $task->done is false
INSERT INTO Tasks (data, taskListId) VALUES (JSON_OBJECT('title', 'New Task', 'done', ''), '12')
-- $task->done is true
INSERT INTO Tasks (data, taskListId) VALUES (JSON_OBJECT('title', 'New Task', 'done', '1'), '12')

有没有办法让 PDO 将它们变成TRUE or FALSE在 SQL 语句中,然后将它们转换为正确的 JSON 布尔值。

EDIT:

我现在尝试使用bindParam and bindValue而不是论据execute。这些并不能解决问题,因为 PDO 仍然将布尔值转换为0 or 1.

编辑:看起来有一个11年前的错误报告,这个问题还没有解决。


我最终将插入行更改为

INSERT INTO Tasks (data, taskListId) VALUES (JSON_OBJECT('title', :title, 'done', :done = TRUE || :done = '1'), :taskListId);

不是解决方案,而是解决方法。

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

PDO-MySQL:在准备好的语句绑定上布尔值被转换为 1 或空字符串 的相关文章

  • Drupal 或 OSCommerce 中的定制产品?

    我看过高低 我想我没有在寻找正确的东西 我想知道 drupal 或 oscommerce 的模块或插件可以让您 构建自己的产品 IE 客户可以访问该网站 并说他想要 PC A 具有 X 容量的 RAM 和 Z 大小的硬盘等 是否有 osco
  • 如何在 Slim Framework 3 上创建中间件?

    我阅读了文档here https www slimframework com docs concepts middleware html关于创建中间件 但我必须创建哪个文件夹或文件 文档不包含此信息 在 src 文件夹下我有middlewa
  • 使用 PhpSpreadsheet PHP 设置单元格边框样式

    我使用 PhpSpreadsheet 来读取或写入 Excel 文件 我想向我的 Excel 添加边框样式 所以我使用了以下代码
  • 从 Mailgun 表单 Post PHP 中检索附件

    如何检索并保存通过 Mailgun 的 POST 表单发送给我的附件 下面是一些参数 attachment 1 filename gt crabby gif type gt image gif name gt attachment 1 te
  • SQL 错误:“没有这样的表”

    我试图解决为什么我的代码为所有查询返回 null 的原因 最后发现 sql 查询什么也没有返回 我使用简约代码创建了一个新的 AIR 文档 s WindowedApplication
  • 未调用 Ajax 回调。如何解决这个问题?

    我再次来这里寻求您的建议 我有一些 AJAX 调用 用于从我的编辑器 PHP 在线编辑器 运行代码 大家可以来看看my site http web guru99 com 我有一些 ajax 调用来发送编辑器的数据并接收输出 问题 for 循
  • 给定“java.sql.SQLIntegrityConstraintViolationException”是否可以确定错误的列

    鉴于我有一个类型为 java sql SQLIntegrityConstraintViolationException 的异常 是否可以以编程方式确定错误的列 或多列 我问这个问题是因为我想将错误映射回客户端的数据模型以指示错误的字段 例如
  • 在单个 select 语句中多次有条件地求和同一列?

    我有一个表 显示每个月在给定位置的各种类型的部署的员工部署情况 ID Location ID Date NumEmployees DeploymentType ID 例如 一些记录可能是 1 L1 12 2010 7 1 Permanent
  • MySQL 和 Hibernate 之间的主键自增由谁负责?

    MySQL CREATE TABLE role id role INT 11 unsigned NOT NULL AUTO INCREMENT PRIMARY KEY id role AUTO INCREMENT 1 休眠 Entity p
  • 在PHP中根据日期显示图像

    在我的计算机上的某个位置 我有一个 PHP 脚本 用于根据日期显示图像 这将允许我在特定日期或选定日期之间显示不同的图像 并在当前日期未列出时显示默认日期要显示的特定图像 我最近的一个硬盘驱动器出现了问题 丢失了一堆文件 我担心这个脚本就是
  • SSL 和会话劫持/固定

    快问 SSL 是否完全防止会话劫持 固定 谢谢 不可以 例如 在以下情况下可能会发生劫持 被黑客入侵的 CA 根签署无效证书 该证书可用于发起中间人攻击 被黑客攻击的域名所有者电子邮件收件箱使黑客有可能购买经过域名验证的证书 错误的密钥策略
  • MySQL 通过 current_timestamp 选择上个月的数据

    直到今天 当我使用 MySQL 并需要对日期 时间执行操作时 我使用带有 unix 时间戳的 int 列 没有出现任何问题 但今天在阅读了一些指南后 我决定默认使用 current timestamp 测试时间戳列 所以我感兴趣如何按列选择
  • MySQL 8 用逗号分割字符串并将其转换为JSON ARRAY

    我有以下字符串 a b c d 我想将它转换成一个 json 数组 像这样 a b c d MySQL 8 有什么函数可以实现这个功能吗 Try SELECT CAST CONCAT REPLACE a b c d AS JSON See
  • Preg_match PHP 到 java 的翻译

    我在将 php preg match 转换为 java 时遇到一些问题 我以为我的一切都是正确的 但它似乎不起作用 这是代码 原始PHP Pattern for 44 Character UUID pattern 0 9A F 44 if
  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • PHP - 获取类公共变量?

    请考虑下面的代码 class A public function construct class B extends A public a a public b b public c c 如何从父类中获取 B 类的公共变量而不确切知道它们是
  • PHP 在数组内循环

    我怎样才能在一个内部循环array在我的代码中 这是我的脚本的静态版本 val array array value gt Male label gt Male array value gt Female label gt Femal my
  • WordPress - pre_get_posts 代替页面上的 query_posts

    我的情况有点复杂 我会尽量简洁地解释一下 我目前正在使用query posts修改我网站上自定义页面上的主查询 据我所知 它工作得很好 尽管我已经读到 由于多种不同的原因 使用 query posts 是不好的做法 那么 我为什么要使用qu
  • Google Cloud SQL 在重新启动时卡住

    我的云 sql 实例长时间处于重新启动状态 在操作窗格中 重新启动的状态显示为待处理 并且还发生了导出 其状态仍为Running 有没有办法可以强制重新启动或取消重新启动或从常规备份中恢复数据 不 没有办法 如果您向 Google 支付高级
  • 变量前面的@是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 参考 这个符号在 PHP 中意味着什么 https stackoverflow com questions 3737139 reference what does this symbol mean i

随机推荐