Mysql
 sql >> Datenbank >  >> RDS >> Mysql

WooCommerce serialisiertes Metawert-Array in der wp_postmeta-Tabelle

Es ist ein serialisiertes Array aus Metadaten-Strings und s:31 ist die Länge von pa_kapaciteta-rezervoarja-za-go in diesem Fall. a:6 ist die Anzahl ok Schlüssel/Wert-Paar-Elemente für jedes Array (oder Sub-Array) .

Also ein serialisiertes Array:

  • beginnen Sie immer mit a: für Array, plus die Anzahl der darin enthaltenen Schlüssel/Wert-Paare und : .
  • dann { für Artikel beginnen
  • dann s: für String plus die Länge des String-Elements (Schlüssel oder Wert) und : , plus die Schlüssel- oder Wertzeichenfolge.
  • dann ; um jede Schlüssel- oder Wertkomponente zu trennen
  • dann } für Artikelende

Serialisierte Arrays , kann nicht serialisiert werden mit WordPress maybe_unserialize() (oder unserialize() in PHP) .
Ein normales Array kann serialisiert werden Verwendung von WordPress maybe_serialize() (oder serialize() in PHP) .

Wordpress-Funktionen wie add_post_meta() oder update_post_meta() werden Arrays immer serialisieren, bevor sie einen meta_value speichern in wp_postmeta Tisch.

Das Gleiche gilt für WooCommerce mit einigen verwandten WC_Data Methode als save() auf CRUD-Objekte und alle zugehörigen Datenspeicherklassen.

mit maybe_unserialize() auf Ihrem serialisierten String-Array ergibt:

$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'
    )
);