PDO, mysqli i sqlite

Pozdrav,

do sada sam radio mysqli konekciju na bazu i baza je bila mysql, sada sam poželio da mogu lako transferirati između mysql baze i sqlite baze te sam zbog toga prešao na PDO.

Činilo se da ako bazom upravljam putem PDO-a, da je sasvim nebitno hoću li konekciju praviti na mysql ili na sqlite …nebi li trebalo biti tako?

Neznam gdje griješim, ali nakon konekcije na sqlite ništa ne radi… koliko vidim, to je iz razloga što se SQL sintaksa mysql-a i sqlite blago razlikuju.

No čemu sve ovo sa PDO ako se SQL ne može ispeglati da ga znaju razumjeti i mysql i sqlite i ostale baze koje podržava PDO ??

Mislim, razumijem da se ne može ispeglati onaj dio SQL-a koji mysql podržava a sqlite nepodržava, ili obratno…ali ako oba sistema podržavaju neke funkcije, a radi se o blagoj razlici SQL upita …nebi li to onda ovakav “univerzalni” komunikator treba znati hendlati ?

Možda treba neka dodatna ekstenzija da bi SQL upit za mysql radio prema sqlite ??

Ti pišeš raw sql upite u PDO-u, i oni su mysql-friendly a ne sqlite-friendly.

Kako možeš očekivati da PDO umjesto tebe “prevodi” upite tako da ih sqlite razumije?

Jel bi očekivao i da sqlite-friendly querye prevodi tako da su mysql-friendly ili postgres-friendly ili whatever-friendly?

To je tvoj posao kao developera, ili koristi neko open-source rješenje.

Primjerice u Laravelu možeš vidjeti kako je to izvedeno. Postoje “grammar” klase koje koriste query builderi ovisno koji driver za bazu se koristi. Link
Tako da kada primjerice pokreneš migracije, aplikacija će učitati koji driver za bazu koristiš i compileat će sql shodno tome. Na isti način rade i ORM/Eloquent modeli.

Kako sam čitao o tome PDO-u

“Wow, promjeniš samo jedan parametar i skačeš iz mysqla u sqlite ili koju god bazu želiš”

…tako sam i očekivao da su rješili konverzije SQL-a između različitih baza (velim, dok ne iskače iz okvira mogućnosti pojedine baze)

Mislim, općenito smatram da je SQL kao jezik morao biti univerzalan…kako pobogu netko razvija svoju bazu i mijenaj sintaksu SQL-a :confused:

Očekivao sam da je PDO to rješenje …kada su već išli stvari unificirati, što nisu do kraja napravili posao. Nekom logikom ima smisla da su odabrali jedinstvenu SQL sintaksu koju bi prevodili za različite database drivere…

Ne bih se slozio. Po mome misljenju, bloatati i usporavati php radi implementacije detalja vezano za baze nema smisla. To je developerski posao i siguran sam da postoji nekoliko dobrih open-source rjesenja za taj problem, jedan sam ti vec linkao u prethodnom postu.
Onaj dio puzzle koji ti nedostaje je open-source zajednica vjerojatno vec rijesila jer su se susreli s time i prije, i onda uzmes to open-source rjesenje i problem solved.

Ma u pravu si …ne mora biti sve unutar PDO klase, može biti neki open source koji npr extenda PDO i dobije se to što treba. …ili na koji način su već ubacili taj dodatni parser…

Ovo što si linkao…nema opis ništa…od kuda krenuti?

To ti je rješenje unutar Laravel frameworka. Preporučam da odvojiš vremena i da se upoznaš s njim. Onda iskoristiš komponente koje ti trebaju (jer ti vjerojatno neće trebati sve).

To neće biti baš lak zadatak. Guglah malo i ne vidim nikakve rezultate, tako da eto ti ideje za dobar blog post jednom kad to napraviš. Contributaš nazad zajednici :wink:

od kuda krenuti?

Ono što bih ja napravio je setupirao dummy projekt s tim frameworkom i pogledao kako to sve radi. Onda bih uzeo ono što mi treba i implementirao u mojoj aplikaciji.

Ma Laravel je odličan, od kad sam počeo raditi s njim prije 5-6 mjeseci sam se preporodio. Toliko stvari ima rješenih ili kroz sami framework ili kroz pakete da je to strašno. Na tebi je samo da rješavaš logiku aplikacije i to je to.

Malo je problem extendanje samog Laravela i njegovih core funkcija, tipa trebali su mi na linkovima slash na kraju (/), pa to je bio užas za rješiti. Također, ne sviđa mi se što je Model ujedno konektan pa bazu, bolje da su taj dio razdvojili kao Smyfony, tamo je model model, a repository (ili kako ga već zovu) sama konekcija s bazom koja kreira kolekcije i modele. I one fasade užasne mi se ne sviđaju :smiley:

Nece vam @bozoou koristiti Laravel, on vise voli svoja, vlastita rijesenja :smile: hehe

Mi u firmi koristimo Laravel za backend, i ja kao front-end developer mogu reci da je isto dobar - iskljucivo za onaj dio sa kojim ja radim, a to su tzv blade-ovi ili ti ga templating.Vrlo jednostavno za raditi i izmijeniti bez da moram cimati back-end developera stalno, sa pitanjima gdje je ovo, gdje je ono :slight_smile:

Hehe, šta je da je…volim svoje. …pri tome ne mislim da je drugo loše, štoviše svjestan sam da nepojmim neke kvalitete koje propuštam.

No vrijedi i obratno, da sam se isključivo orijentirao hodati po utabanatim stazama, nebi ni pojmio koji je bio potencijal u meni da se sjetim nekih vlastitih ideja…i da ojačam u borbi sa svim tim izazovima koji su se nametnuli…

Uskoro će doći vrijeme da ću pročešljati sve kvalitetne frameworke i nastojati ili odabrati najdraži ili pobrati šlag s vrha i nakeljiti ga na svoju tortu.

P.S. u ovu pustolovinu “programiranja” sam krenuo isključivo iz gušta. Dugo mi nije ni palo na pamet da ću jednog dana zarađivati od toga. A kada tako kreneš…onda ideš prvenstveno putem koji je zanimljiviji. A i na početku doslovice nisam znao engleski …pa je bilo i lakše napraviti nešto nego proučiti, a svakako zanimljivije. Nevjerovatno, ali ta pustolovina je potrajala punih 10g. i evo me od nekidan tek slažem svoj prvi portofolio i krećem u potragu za poslom. :smiley:

1 Like

Pa vecina nas je pocela iz te neke znatizelje, mislim da nikom nije bio novac motiv.

Ja do prije neke 2-3 godine nisam bio svjestan da se od ovog posla moze fino zivjeti, a nisam imao ni nekog vremena, skola je cinila svoje jer sam veci dio dana provodio tamo.

Sto se tice frameworka, danas nigdje neces naci posao da radis sve cisti PHP, JS ili sta ja znam, iz mnogo razloga:

  1. Brzi development sa frameworkom, nego sa nekim pure rijesenjom jer je dosta komplilovanih stvari rijeseno unutar samog frameworka.Mislim dosta brze ces sloziti nesto, sa boljim kvalitetom i vecom skalabilnosti nego da pises sve sam.
  2. Vecina poznatih frameworka su jako dobro napisani napisani od strane jako pametnih ljudi.
  3. Framework daje tu neku sigurnost - lakse je scaleati aplikaciju, bugove unutar samog frameworka rijesava autor, vise njih odnosno zajednica.

Naravno, pisanje cistog PHPa, JSa ili neceg treceg ja jako bitno i zanimljivo kao i poucno - nauci se dosta stvari o samom jeziku i dosta lakse se shvati neki framework, ali firme nemaju vremena, novca i ostalih resursa da finansiraju izmisljanje tople vode kad za nesto postoji vec gotova stvar.

Ako vec radis taj portfolio, i trazis posao uzmi neke frameworke u razmatranje - ako poznajes dobro jezik u kome je framework pisan, ne bi trebao imati problema sa samim ucenjem frameworka :wink:

Pozdrav.

Mene su oduvijek privlačili konkretni izazovi koji nisu zavisili niti od frameworka, niti od programskog jezika JS, PHP, može i python ili koji god.

Moje poimanje “pravog” programerskog zadatka je potpuno nezavisno od frameworka ili programskog jezika. Sve to jesu alati koji će pomoći u rješavanju, ali suština problema uvijek leži u “algoritamskoj tehnici” …tj. kako prenesti određenu misao u algoritam. (Da se ne raspadne ako misao poraste)

Ako ja recimo postavim zadatak:

“Ajmo napraviti korisničko sučelje automobila koji će bit rješeno svih gumbića, a interakcija sa vozačem će se odvijati glasovno, gdje korisnik mora moći što intuitivnije razgovarati sa automobilom”. (To na kraju krajeva jeste budućnost sa svim aparatima, hardver buttons će biti prošlost… :slight_smile: )

I sada primjeti da za rješenje takvog problema su potrebni programeri. No isto tako primjeti da ispadaju iz igre i Lavarel i JS i neznam koji sve alati. E ono što ostaje, to je za mene “srž programiranja” , a ono što se od alata mora koristiti da bi se ta srž mogla projecirati u realnost…to su samo alati podrške i oni su zamjenjivi kako puhne potreba od zadatka.

Heto, ja sam dosad bio vođen,kao što rekoh, stvarima koje volim…a izazove sam pronalazio u toj “srži”. …zato sam dosad zanemario te neke alate za “produktivniju izradu weba”. No imam apsolutnu namjeru prikopčat se na vlak…

A i zanimljivo što se tiče produktivnosti, jeste da mi je duže trebalo da dođem tu gdje jesam …ali trenutno ne osjećam nikakav hendikep po tom pitanju.