Mysql
 sql >> Base de données >  >> RDS >> Mysql

Tableau de méta-valeurs sérialisées WooCommerce dans la table wp_postmeta

Il s'agit d'un tableau sérialisé de chaînes de métadonnées et s:31 est la longueur de pa_kapaciteta-rezervoarja-za-go dans ce cas. a:6 est le nombre d'éléments de paires clé/valeur ok pour chaque tableau (ou sous-tableau) .

Donc un tableau sérialisé :

  • commence toujours par a: pour le tableau, plus le nombre d'éléments paires clé/valeur qu'il contient et : .
  • puis { pour les articles commencer
  • puis s: pour chaîne, plus la longueur de l'élément de chaîne (clé ou valeur) et : , plus la clé ou la chaîne de valeur.
  • puis ; pour séparer chaque élément de clé ou de valeur
  • puis } pour les articles fin

Tableaux sérialisés , peut être non sérialisé en utilisant WordPress maybe_unserialize() (ou unserialize() en PHP) .
Un tableau normal peut être sérialisé en utilisant en utilisant WordPress maybe_serialize() (ou serialize() en PHP) .

Les fonctions Wordpress comme add_post_meta() ou update_post_meta() sérialiseront toujours un tableau avant d'enregistrer une meta_value dans wp_postmeta table.

Même chose pour WooCommerce avec quelques WC_Data associés méthode comme save() sur Objets CRUD et toutes les classes de magasins de données associées.

en utilisant maybe_unserialize() sur votre tableau de chaînes sérialisé donnera :

$values = array( 
    'pa_hrup' => array(
        'name'         => 'pa_hrup',
        'value'        => '',
        'position'     => '0',
        'is_visible'   => '1',
        'is_variation' => '0',
        'is_taxonomy'  => '1'
    ),
    'pa_kapaciteta-rezervoarja-za-go' => array(
        'name'         => 'pa_kapaciteta-rezervoarja-za-go',
        'value'        => '',
        'position'     => '1',
        'is_visible'   => '1',
        'is_variation' => '0',
        'is_taxonomy'  => '1'
    )
);