web-dev-qa-db-fra.com

Comment les données sont-elles stockées dans la base de données?

J'ai des années d'expérience avec PHP et MySQL, mais je commence tout juste à développer des plugins pour WordPress et j'ai besoin d'aide.

Actuellement, je travaille sur un plugin qui ajoutera des fonctionnalités supplémentaires à un autre plugin. J'ai besoin de lire les données stockées par le plugin d'origine et de les manipuler avec mon plugin. Jusqu'ici tout va bien, mais lorsque j'ouvre phpMyAdmin, les données stockées dans le tableau du plugin Original ressemblent à ceci: a:2:{i:0;a:11:{s:2:"id";s:1:"1";s:7:"item_id";s:1:"1";s:4:"name";s:9:"section 1";s:5:"limit";s:1:"1";s:5:"order";s:6:"random";s:10:"difficulty";s:4:"easy";s:9:"timestamp";s:19:"2012-05-21 12:29:44";s:9: ... Est-ce que quelqu'un peut me dire comment lire ceci? Comment cette méthode de stockage de données est-elle appelée et existe-t-il des guides sur la manière de lire ces données avec d’autres plugins?.

EDIT: Après avoir étudié le code, voici ce que je comprends
- s:2:"id"; cela signifie: chaîne avec 2 caractères -> "id".
- s:7:"item_id"; cela signifie: chaîne avec 7 caractères -> "item_id".

- a:4:{} cela signifie qu'il y aura 4 arguments entre les accolades.

La seule chose que je ne puisse pas comprendre, c’est le i:0;?

Ai-je raison avec les hypothèses ci-dessus?

Merci, Radi.

3
Radi

Ceci est un tableau sérialisé. PHP est capable de les lire comme s'il s'agissait de tableaux classiques (ou d'objets, dans certains cas) en utilisant les fonctions serialize et unserialize (WordPress le fait pour vous).

Tout ce que vous avez besoin de faire avec WordPress est d’utiliser get_option (ou d’appels de fonctions WordPress comparables pour récupérer des données) et d’utiliser le tableau/objet normalement.

Je vous recommanderais d'éviter de modifier les données brutes dans la base de données, car cela peut vraiment gâcher les choses (je le sais d'expérience :)).

5
William