当我运行从办公室选择类型时,我的数据库中有以下内容;
+--------------------------------------------------------+
| type |
+--------------------------------------------------------+
| a:2:{i:0;s:16:"Shared Workspace";i:1;s:9:"Workshops";} |
+--------------------------------------------------------+
如何为其他类型的办公室添加额外的JSON值。基本上,我希望它添加类型“ Private Offices”。因此,我的数据库中的值将如下所示:
+-----------------------------------------------------------------------------------+
| type
+-----------------------------------------------------------------------------------+
| a:3:{i:0;s:16:"Shared Workspace";i:1;s:9:"Workshops";i:2;s:15:"Private Offices";} |
+-----------------------------------------------------------------------------------+
答案 0 :(得分:3)
这不是JSON格式。看起来像PHP serialize()函数的输出。
没有SQL函数可以将值附加到序列化的PHP数据中。您应该将其提取到PHP应用程序中,将其解序列()到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]);