1

MySQL 5.7.19 を使用しています

次のようなクラスを取得しようとしています

class Task
{
    public $title;
    public $done;
}

titleおよびプロパティはdoneJSON 列に保存されます。

取得に使用するコードは次のようになります。

    $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」が設定されます。

4

1 に答える 1