Mağaza ve PHP ve MySQL kullanarak çok boyutlu bir dizi almak

3 Cevap php

Böyle PHP çok boyutlu bir dizi var:

$array = array(
    "Part1" => array(
        "Subpart1" => array(0, 1),
        "Subpart2" => array(1, 0)
    ),
    "Part2" => array(0),
    "Part3" => array(0, 1, 0)
);

Şimdi bir MySQL tablo bu diziyi saklamak ve başka bir PHP sayfasında yine aynen bu gibi almak istiyorum.

I serialize() kullanarak çalışıyor ve unserialize() oldum

$array= serialize($array);

ve daha sonra diğer sayfada

$array= $row['Array'];
$array2 = array();
$array2 = unserialize($array);

Ama ben bir var_dump bool(false) içinde var ve şimdi bir var_dump NULL içinde olsun başında, yanlış bir şey yapmak gibi görünüyor.

3 Cevap

Sizin kod Tamam görünüyor ...

Sütun çok küçük ise dışarı yakalayabilirsiniz Bir şey - VARCHAR (255) kullanırsanız veri kesilebilir ve unserialize olmaz. Eğer değer eklerseniz bu tüm ise $row['Array'] görebiliyordu.

Sütun türü METİN kullanın. Tefrika veriler genellikle VARCHAR (255) uymuyor.

Sen json encode, json_encode ($ dizi) kullanabilir ve veritabanında saklayabilirsiniz böylece json gösterimde bir dize değeri alacak ve (true $ string) bir json_decode alınamadı ve mutlaka böylece tekrar bir dizide dönüştürmek cand. Eğer json_decode için gerçek argüman yoksa, bu bir stdClass dönüştürülür olacaktır.