Kicsit meg vagyok illetődve.
- andrasf blogja
- A hozzászóláshoz be kell jelentkezni
- 918 megtekintés
Hozzászólások
A NULL sosem konvertalodik, ennyire ne szaladj elore. Valamint, tessek olyan keretrendszert hasznalni, ami az ures mezoket nem nullara, falsra, meg egyebekre konvertalja, hanem NULL-ra. A tobbit tessek kidobni az ablakon.
Egyebkent nem irtad, de tippre olyan itemeket kaptal, ahol ures az email, tehat nem feltetlen null, hanem akar ures string.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
CodeIgniter Input Class, "The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist", ebben igazad van.
Az email sehol nem null, nem üres, minden sort visszakapsz ezzel a lekérdezéssel. A query pontosan úgy hangzik string-ként, hogy select * from user where email=0
, tehát a false-ból később 0 lett, de ez már lényegtelen, ugyanúgy működnek.
A CodeIgniternek nem ez az első hülyesége, de ez esetben a MySQL is fura nekem.
- A hozzászóláshoz be kell jelentkezni
A CI-ben ez kivételesen nem hülyeség - hiszen nem mindegy, hogy ha létrehozol egy form-ot és létrehozol egy email nevű, opcionális mezőt, valamint a get/post inputot $this->input->get/post("emil") (elírt email!) módon kéred le, akkor csak nehezen fogsz rájönni, hogy miért nem ad meg senki se email-t :)
- A hozzászóláshoz be kell jelentkezni
Ha a NULL azt jelenti hogy nincs beállítva az adott érték, akkor nem sok helyen lehet azért a hiba.
- A hozzászóláshoz be kell jelentkezni
Asszem félreértettelek. Azt hittem, hogy az a bajod, hogy nem üres sztringet ad vissza, amikor false/null kellene...
- A hozzászóláshoz be kell jelentkezni
Latjatok gyerekek, ez az az ok, ami miatt illik unit teszteket irni, az pillanatok alatt kihozza a hibat. Es a tesztet illik kezzel begepelni, nem illik smi... ooo... csalni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Ezzel megint visszajutottunk a "tessék kidobni az ablakon" részhez. Vagy lehet unit testet összekókányolni CI-hez...
Az a vicc, hogy például Grails-ben a fw része a unit test, de ott meg a GORM osztályokhoz automagically hozzátevődik egy pár metódus bootstrap közben, amiket nem lehet unit testelni, mert a mock-olt domainek nem támogatják. Integration testelni elvileg lehetne az éles adatbázissal, stb., de az meg a múltkor arra is igazat mondott hogy üres az adatbázis, meg arra is hogy benne van az a rekord, amit amit két sorral korábban töröltem, szóval az meg bugosnak tűnik.
- A hozzászóláshoz be kell jelentkezni
Az emlitett esetben en tranzakcio szagot erzek.
Egyebkent igen, eddig egyedul a Rails volt az, hol ertelmes unit teszt kornyezetet talaltam. PHP-nal ez kb. eselytelen.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Jelen esetben a böngészőtől kapott adat NEM változtat a szerver oldal állapotán, tehát szemantikailag GET-et kéne használni.
Az üres mezőt meg igenis NULL-ként kéne továbbadnia a keretrendszernek az SQL felé. Ha nem így tesz, akkor sz@r, mert az üres mező nem "0", nem " ", nem "", hanem ÜRES.
- A hozzászóláshoz be kell jelentkezni
"Jelen esetben a böngészőtől kapott adat NEM változtat a szerver oldal állapotán, tehát szemantikailag GET-et kéne használni."
Honnan tudod? Ez csak egy példa volt :) A lényeg az, hogy ha paraméter nélkül érem el azt, amit paraméterrel gondoltam volna elérni, az összes WHERE=paraméter igazra fog kiértékelődni minden sorra.
És ez csak részben a keretrendszer hibája, szerintem "email@gmail.com" == false
nem kéne hogy igaz legyen, és "email@gmail.com" == 0
sem kéne hogy igaz legyen. Nekem ez sehogy nem áll így össze.
- A hozzászóláshoz be kell jelentkezni
A példa szerint select-ben használod,a mi nem változtatja meg a szerver állapotát. Ha insert/update/delete is van, azaz kétszer elküldve az adatokat más lesz a szerver válasza, akkor post. Egyébként az email is null or email = "" randa körbegányolása a dolognak, bár én onsubmit eseményre azért megnézném, hogy az email mező valami kukac valami egy vagy több pont-valami formátumú-e?
- A hozzászóláshoz be kell jelentkezni