źle się czuję wśród tych co otwarte już drzwi chcą wyważyć
31 paź
Ehh, nauka PHP5 idzie mi dosyć ciężko. Trudno mi załapać tą całą obiektówkę, rzucanie wyjątków, MVC, fabryki, singletony i inne ‘barachło’
Chyba za stary jestem na takie zmiany
Pare ostatnich dni szukałem jakiegoś layera DB. Kiedyś w paru projektach użyłem PEAR::db, potem napisałem (przerobiłem gotową) klasę obsługującą tylko MySQL + mały benchmark czasów wykonania zapytań/ilości zapytań. Teraz musiałbym to przepisac na Oo i PHP5 więc pomyślałem, że rozejrze się za czymś gotowym co będzie z milion razy lepsze niż moje gryzmoły.
I tak oto wpadłem na Creole. Fajna sprawa. Przy okazji ich manualka skumałem wreszcie o co chodzi w tych zapytaniach preinterpretowanych
Młodzi - nie śmiać się
Czytałem fragmencik o tym bodajże w “PHP. Vademecum profesjonalisty” ale nic nie skumałem, kiepsko było wytłumaczone. A tu wystarczyło mi kilka linijek manuala Creole i już, eureka (pyk, zaświeciła mi się żarówka nad “łepkiem” :))
$stmt = $conn->prepareStatement(”INSERT INTO users (id, name, created) VALUES (?,?,?)”);
$stmt->setInt(1, $id);
$stmt->setString(2, $name);
$stmt->setTimestamp(3, time());
$stmt->executeUpdate();
Co to nam daje? Jesli dobrze skumałem to: raz - odpada ciągłe addslashowanie (tudzież mysql_real_escape_stringowanie) wprowadzanych wartości, a dwa - odpada także sprawdzanie rodzaju (string, int, data…) co w sumie zupełnie eliminuje problem sql_injection.
Jak coś pomyliłem, źle skumałem
to dajcie znać w komentach
Ciekaw też jestem jaki wpływ mają takie zapytania na bazy, konkretnie na MySQL? Podnosi to jakoś wydajność? Może wręcz przeciwnie?