Как добавить MYSQL JSON

У меня есть следующее в моей базе данных, когда я запускаю ВЫБЕРИТЕ тип ИЗ офиса;

+--------------------------------------------------------+
| type                                                   |
+--------------------------------------------------------+
| a:2:{i:0;s:16:"Shared Workspace";i:1;s:9:"Workshops";} |
+--------------------------------------------------------+

Как я могу добавить дополнительное значение JSON для другого типа офиса. В основном я хотел бы добавить тип «Личные кабинеты». Таким образом, значение в моей БД будет выглядеть так:

+-----------------------------------------------------------------------------------+
| type                                                                              
+-----------------------------------------------------------------------------------+
| a:3:{i:0;s:16:"Shared Workspace";i:1;s:9:"Workshops";i:2;s:15:"Private Offices";} |
+-----------------------------------------------------------------------------------+

Это не JSON, это формат PHP serialize().

Barmar 09.04.2019 21:14

Вы должны прочитать его с помощью PHP, вызвать unserialize(), поместить новое значение в массив, снова сериализовать его, а затем обновить БД.

Barmar 09.04.2019 21:15
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
74
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это не формат JSON. Это похоже на вывод функции PHP сериализовать().

Нет функции SQL для добавления значений к сериализованным данным PHP. Вы должны загрузить его в приложение PHP, unserialize() в массив PHP, затем добавить данные в массив PHP и обновить их обратно в базу данных.

Что-то вроде следующего (некоторые детали были опущены, например условия WHERE для конкретной строки, на которую вы ссылаетесь).

<?php

$pdo = new PDO(...);
$typeSerialized = $pdo->query("SELECT type FROM office WHERE ...")->fetchColumn();
$typeArray = unserialize($typeSerialized);
$typeArray[] = "Private Offices";
$typeSerialized = serialize($typeArray);
$stmt = $pdo->prepare("UPDATE office SET type = ? WHERE ...");
$stmt->execute([$typeSerialized]);

Другие вопросы по теме