Pereiti prie turinio

[PHP] Boolean false?


Rekomenduojami pranešimai

Susidūriau su problema:

 

Cikle išvedu eilutes iš DB, kiekviena eilutė turi lauką kuriame saugomos serialized reikšmės pvz.:

 

Laukas "savybes" eilute 1

a:2:{s:5:"metai";s:4:"1977";s:6:"spalva";s:6:"Žalia";}

 

Laukas "savybes" eilute 2

a:2:{s:5:"metai";s:4:"1976";s:6:"spalva";s:10:"Geltona";}

 

Prieš išvedant darau unserialize

$unserialize_savybes = unserialize($rowresults->savybes);

 

Toliau tiesiog išvedu norimą reikšmę iš gauto masyvo

$unserialize_savybes['spalva']

 

Viskas gerai su pirma eilute, o antra eilutė negrąžina nieko...var dump rodo Boolean false

 

Kas čia gali būti negerai?

Redagavo kiladila
Nuoroda į pranešimą
Dalintis kituose puslapiuose

ijung errora, pamatisi kad kazkur pametei kazkoki zenkla.

 

O jeigu buti tiksliau zodyje Geltona yra 7 raides, o ne kaip nurodyta 10, todel teisingas variantas yra

 

a:2:{s:5:"metai";s:4:"1976";s:6:"spalva";s:7:"Geltona";}

 

http://i0.kym-cdn.com/photos/images/newsfeed/000/166/745/queen-rock-group-freddie-mercury-in-concert-at-st-james-park-in-newcastle-1986.jpg

Redagavo apieviska
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na yra tarp šių eilučių akivaizdus skirtumas. Prieš "Geltona" s:10, o prie "Žalia" s:6 :) O šiaip negerai yra taip saugot - pažeidžia vientisumą, normines formas. Stulpelius padaryk `metai` ir `spalva`. Bet jeigu jau nu eina sau kaip prireikia taip vat saugot, tai jau geriau saugok JSON formatu - bent taupiau, + kai kurios DB palaiko šitą formatą kaip column type.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na yra tarp šių eilučių akivaizdus skirtumas. Prieš "Geltona" s:10, o prie "Žalia" s:6 :) O šiaip negerai yra taip saugot - pažeidžia vientisumą, normines formas. Stulpelius padaryk `metai` ir `spalva`. Bet jeigu jau nu eina sau kaip prireikia taip vat saugot, tai jau geriau saugok JSON formatu - bent taupiau, + kai kurios DB palaiko šitą formatą kaip column type.

Man vienam idomu kodel geriau saugoti JSON, negu serialaizinti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Šitą reikšmę paredagavau jau po to kai išmesdavo Boolean false ir pamiršau ilgi pakeisti, šiaip kažkodėl vietoj vienos LT raidės įterpė simbolius ir nesutapo jau tada ilgis dėl to ir nieko nerodė, dabar jau kaip ir viskas gerai tik atkurti tos pačios situacijos nepavyksta keista.

 

O dėl to būdo saugojimo nustatymų tai darau taip nes viskas vyksta ant WP ir ten tokiu būdu saugomi nustatymai.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Man vienam idomu kodel geriau saugoti JSON, negu serialaizinti?

Na jau 2 argumentus pateikiau. Vienas - kad fiziškai mažiau vietos užima. Aišku reiktų pabenchmarkint ant kiek greičiau įvyksta unserialize, negu json_decode į masyvą, bet nemanau kad čia bus kažkoks koordinaliai viską pakeičiantis skirtumas. Plius jeigu naudoji kokį PostgreSQL, tai kaip minėjau, JSON yra datatype'as toks duombazinis, ir veliau gali sąlyguose naudot jo reikšmes. Tarkim turi field'ą extra_data su reikšme

{"arg1": "x", "arg2": "y"}

, tai grubiai tariant gali daryt

WHERE extra_data.arg1 = x

Redagavo vitalikaz
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na jau 2 argumentus pateikiau. Vienas - kad fiziškai mažiau vietos užima. Aišku reiktų pabenchmarkint ant kiek greičiau įvyksta unserialize, negu json_decode į masyvą, bet nemanau kad čia bus kažkoks koordinaliai viską pakeičiantis skirtumas. Plius jeigu naudoji kokį PostgreSQL, tai kaip minėjau, JSON yra datatype'as toks duombazinis, ir veliau gali sąlyguose naudot jo reikšmes. Tarkim turi field'ą extra_data su reikšme

{"arg1": "x", "arg2": "y"}

, tai grubiai tariant gali daryt

WHERE extra_data.arg1 = x

GM, vienas is rietu atveju, kai as turbut vis del to sutiksiu su tavim ))) Bet vistiek liksiu prie serialize, kadangi jis yra butent duomenu saugojimo budas, o json yra duomenu transpartavimo budas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

GM, vienas is rietu atveju, kai as turbut vis del to sutiksiu su tavim ))) Bet vistiek liksiu prie serialize, kadangi jis yra butent duomenu saugojimo budas, o json yra duomenu transpartavimo budas.

O prie ko čia transportavimas? Ką, JSON gal per socketą nusiunčia duomenis, ar į hardą įrašo? ;) Visiškai ta pati velniava, tik JSON – bendras formatas, o serialize – PHP'o „vietinis“, native objektam.

 

Apskritai, neretu atveju geriau jau pasidaryti DB schemą, negu kišti JSON'o gabalus į tekstinius laukelius.

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...