0
votes

Stockez l'objet JSON dans la base de données à l'aide de PHP

Question rapide, j'ai un objet de données JSON par exemple {"nom": "John", "Âge": 30, "voiture": null} , est-il possible de stocker ce juste Comme c'est dans un champ mysql?, et à son tour, lisez-le?


2 commentaires

La réponse rapide est bien sûr oui


Google est votre ami: dev.mysql.com/doc/refman/8.0 /en/json.html


3 Réponses :


0
votes

Oui, vous devez définir la colonne correctement (je les définis habituellement comme texte). Après cela, vous pouvez utiliser json_decode () et c'est il


1 commentaires

Ensuite, vous stockez du texte, pas JSON.



0
votes

Cela devrait être utile: https://dev.mysql.com/doc/refman/8.0/ EN / JSON.HTML

MySQL prend en charge les objets JSON, alors quelque chose comme ça: P>

mysql> CREATE TABLE t1 (jdoc JSON);
Query OK, 0 rows affected (0.20 sec)

mysql> INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT jdoc FROM t1;
+---------------------------------------------------------+
| jdoc                                                    |
+---------------------------------------------------------+
| {"key1": "value1", "key2": "value2"}                    |
+---------------------------------------------------------+


0 commentaires

3
votes

Vous pouvez stocker fondamentalement tout ce que vous voulez dans un champ MySQL, les seules contraintes sont le type de données et la taille maximale du champ. Que cela a du sens est une autre question et dépend de votre cas d'utilisation. Deux cas qui ont du sens sont les suivants:

Si vous avez simplement besoin d'un endroit pour stocker un tableau / objet sérialisé quelque part et que vous n'avez pas besoin d'interroger les champs dans les données sérialisées, vous pouvez le stocker dans E.G. un varchar ou un champ comme une autre chaîne, et simplement json_encode sur le chemin et json_decode lors de la lecture il.

D'autre part, par exemple Pour un cas d'utilisation où vous avez des structures de données variables associées à vos entrées de table principale, que vous devez interroger, vous pouvez utiliser le JSON DataType (disponible depuis MySQL 5.7.8). Le jeu de données JSON n'accepte que des chaînes JSON valides pour l'entrée, et il existe Plusieurs fonctions utiles pour interroger le contenu.

Quoi que vous fassiez, ne stockez pas JSON (ou d'autres données sérialisées) dans un champ de texte régulier, puis essayez de la questionner avec comme '% "champ": "Valeur"%' style hacks. Ils cèdent la misère et finissent par échouer.


0 commentaires