簡體   English   中英

json數據字段和php json函數

[英]json data fields and php json functions

似乎我不能在MYSQL表中使用JSON-為字段選擇數據類型時沒有這樣的選項phpMyAdmin ver 4.8.3

問題-如果我使用php函數json_encodejson_decodevarchartext字段中獲取和設置值-我是否需要JSON字段?

您可以將JSON對象作為字符串存儲在string字段中,也可以在包含JSON類型數據的字段中使用它

這在MySQL版本8中有效

優點

  1. 這種類型的優點是,它可以自動驗證存儲在JSON列中的JSON文檔,並且無效文檔會產生錯誤。
  2. 優化的存儲格式。 存儲在JSON列中的JSON文檔將轉換為內部格式,從而可以快速讀取文檔元素

您可以在此處閱讀整個文檔JSON數據類型

缺點

如果選擇使用VARCHARTEXT字段將JSON數據存儲為字符串,則需要從數據庫中檢索數據后正確解析數據,以使其表現為正確的JSON對象

是的,您可以這樣做,除非您不想對這些json字符串的鍵值執行搜索。 MySQL Json Type允許您執行此操作,除了以有效的方式存儲json外。

您可以使用Blob或文本類型。 Varchar對於json來說太短了,除非您的json少於255個字符。

斑點可能是個好主意。 您可以將其映射到php中的資源(不將整個文件加載到內存中),然后使用像這樣的json流解析器來讀取文件的內容。

但是同樣, 將json作為字符串存儲將不允許您使用json數據高效地查詢

注意:Mysql從5.7.8開始支持Json類型。 PhpMyAdmin是另一軟件。 如果您的json類型不存在,可能是因為您的MySQL版本。 在終端中運行mysql -V進行檢查。

根據官方文件

從MySQL 5.7.8開始,MySQL支持RFC 7159定義的本機JSON數據類型,該類型可有效訪問JSON(JavaScript對象表示法)文檔中的數據。

檢查您的MySQL版本,以了解它是否支持JSON數據類型。

您問題的答案:

您可以json_encode您的數據並將其存儲在text字段中。 從數據庫表中檢索它之后,執行json_decode

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM