我正在尝试将一些布尔值插入到 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年前的错误报告,这个问题还没有解决。