MySQL 5.7.19 を使用しています
次のようなクラスを取得しようとしています
class Task
{
public $title;
public $done;
}
title
およびプロパティはdone
JSON 列に保存されます。
取得に使用するコードは次のようになります。
$tasksSql = <<<'EOT'
SELECT JSON_UNQUOTE(JSON_EXTRACT(data, '$.title')) AS title,
JSON_EXTRACT(data, '$.done') AS done
FROM Tasks WHERE TaskListId = ?;
EOT;
$tasksStatement = $connection->prepare($tasksSql);
$tasksStatement->execute([$id]);
$tasksStatement->setFetchMode(PDO::FETCH_CLASS, "Task");
$taskList->tasks = $tasksStatement->fetchAll(PDO::FETCH_CLASS, "Task");
すべてのフィールドに入力しますが、done
プロパティにはブール値ではなく文字列値「true」または「false」が設定されます。