Pereiti prie turinio

Rekomenduojami pranešimai

Ne visas žinutes skaičiau kas čia prifantazuota, bet susidariau įspūdį, kad dauguma čia rašančių apie OOP, ActiveRecords nelabai teko girdėt. Dabar yra tokie laikai kai metodai, pvz:

 

->select('*');
->get('table');
->join()

Galbūt neturėjai omeny, bet prieš einant kodo pavyzdžiui paminėjai konkretų pattern'ą. Tavo pavyzdys nėra niekuom susijęs su active record pattern.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na negali taip imti ir iškart visiems veikiantiems projektams perašyti visas užklausas, kai ir be to turi darbo visai dienai :) Ir tų užklausų tikrai daug.

 

Perašiau DB klasę pagal PDO. Viskas po truputi ;)

Žinoma, kad negali. O kas verčia šiandien užupgreidinti į PHP 5.5? Kas trukdė anksčiau perrašinėti? :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Krypstat tamsta į lankas. Klausimas labai aiškiai suformuluotas. Pliusai/minusai ir t.t :)

Tiesiog nematau, kam pereidinėti prie escapinimo su PDO, tada pereidinėti prie prep statementų su PDO... :)

 

Apie minusus puikiai aprašo php.net: quote() palaiko ne visi driveriai, prep statementai dažniausiai veikia greičiau (ypač, jei neemuliuojami), ir t.t.

 

Su tikrais prepared statements SQL injekcija apskritai turėtų būti neįmanoma, nes užklausa parsinama visiškai atskirai nuo argumentų. Užklausą jungiant kaip stringą pačiam, žinoma, tai negalioja.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Su tikrais prepared statements SQL injekcija apskritai turėtų būti neįmanoma, nes užklausa parsinama visiškai atskirai nuo argumentų. Užklausą jungiant kaip stringą pačiam, žinoma, tai negalioja.

 

Teisybė dėl argumentų atskirimo nuo užklausos, bet pasitaiko, kai pačią užklausą reikia generuoti dinamiškai. Pvz. negalima siųsti stulpelių pavadinimų atskirai nuo pačios užklausos:

 

SELECT * FROM users ORDER BY ?;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Man čia kyla teorinių neaiškumu su visa ta mysql licenzija:

 

Tai dabar taip išeina, jog PHP atsisako mysql_* funkcijų ir rekomenduoja naudoti PDO arba mysqli_, dėl to, jog buvo pakeista Mysql licenzija. Bet iš esmės ši rekomendacija nieko neišsprendžia, nes mes toliau naudosime Mysql duomenų bazę. O jeigu dabar ar kažkada vėliau Mysql būtų gerokai užkelta kaina, tai reikėtų migruoti į kitokią DB. Taigi kodėl PHP bendruomenė iškart nerekomenduoja keliauti į kitokią DB ?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Man čia kyla teorinių neaiškumu su visa ta mysql licenzija:

 

Tai dabar taip išeina, jog PHP atsisako mysql_* funkcijų ir rekomenduoja naudoti PDO arba mysqli_, dėl to, jog buvo pakeista Mysql licenzija. Bet iš esmės ši rekomendacija nieko neišsprendžia, nes mes toliau naudosime Mysql duomenų bazę. O jeigu dabar ar kažkada vėliau Mysql būtų gerokai užkelta kaina, tai reikėtų migruoti į kitokią DB. Taigi kodėl PHP bendruomenė iškart nerekomenduoja keliauti į kitokią DB ?

 

mysql_ atsisako dėl to, kad pasenus labai, o ne dėl to, kad mysql ten pakeitė licenzija

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Man čia kyla teorinių neaiškumu su visa ta mysql licenzija:

 

Tai dabar taip išeina, jog PHP atsisako mysql_* funkcijų ir rekomenduoja naudoti PDO arba mysqli_, dėl to, jog buvo pakeista Mysql licenzija. Bet iš esmės ši rekomendacija nieko neišsprendžia, nes mes toliau naudosime Mysql duomenų bazę. O jeigu dabar ar kažkada vėliau Mysql būtų gerokai užkelta kaina, tai reikėtų migruoti į kitokią DB. Taigi kodėl PHP bendruomenė iškart nerekomenduoja keliauti į kitokią DB ?

Arvis gerai pasakė – ext/mysql tai ne mysql duomenų bazė. Atsisako pasenusios API, o ne dėl kažkokių licenzijų. MSSQL mokama, bet dėl to nešalina nei jos supporto iš PHP, nei liepia jos nenaudoti.

 

MySQL maintaineriai sako, kad licenzijos pakeitimas buvo bugas ir artimiausioj versijoj bus atkeista atgal. Manau, nėra ko per daug bijoti.

 

Jei nori drop-in replacemento, tada MariaDB, jei nori kitos SQL – Postgres yra tai, ką naudoja cool kids dabar :)

 

Jau diskutavom čia. http://uzdarbis.lt/t273016/oracle-slapeia-pakeite-mysql-dokumentacijos-licencija/

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ą...