PDO en database
Hallo allen,
Ik wil me eens wat meer verdiepen in PDO en databases. Ik wil wat basisinformatie leren over hoe je het beste queries kunt gebruiken. Heel simpel wat info over select, update, join en dergelijke en dan op de PDO manier. Even m'n geheugen opfrissen... weet iemand toevallig een leuke tutorial ofzo?
Ik wil me eens wat meer verdiepen in PDO en databases. Ik wil wat basisinformatie leren over hoe je het beste queries kunt gebruiken. Heel simpel wat info over select, update, join en dergelijke en dan op de PDO manier. Even m'n geheugen opfrissen... weet iemand toevallig een leuke tutorial ofzo?
De enige echte van Joren de Wit:
http://www.phptuts.nl/view/41/
Hoofdstuk 4 t/m 12, de even nummers.
http://www.phptuts.nl/view/41/
Hoofdstuk 4 t/m 12, de even nummers.
Gewijzigd op 07/10/2011 10:15:06 door - Ariën -
En de volledige PDO tutorial: http://www.phptuts.nl/view/27/
Dankjewel Aar en Wouter! Daar ben ik wel even zoet mee :-)
Ik heb toch wel een punt van kritiek op beide tutorials, en wel dit:
de sqlsyntax die gebruikt wordt is niet cross database compatible.
de sqlsyntax die gebruikt wordt is niet cross database compatible.
Hoe bedoel je Ger? En nog belangrijker... weet jij dan een tutorial waarbij wel de goede sqlsyntax wordt gebruikt?
Ozzie:
Een klein voorbeeldje: Hoe bedoel je Ger?
mssql kent geen columns van het type int en varchar
sqlite vereist quotes(") of [] om veld en tabelnamen
Ozzie:
En nog belangrijker... weet jij dan een tutorial waarbij wel de goede sqlsyntax wordt gebruikt?
Nee eigenlijk niet... :-(
Ik snap het niet goed... ik dacht dat PDO dat zelf eigenlijk allemaal regelde...???
Ik betwijfel het.
De grootste verschillen zitten in SQLite, wat zoals de naam al doet vermoeden beperkte SQL functionaliteit heeft, en ik vraag me of dat uberhaupt al door PDO zelf geregeld kan worden.
De grootste verschillen zitten in SQLite, wat zoals de naam al doet vermoeden beperkte SQL functionaliteit heeft, en ik vraag me of dat uberhaupt al door PDO zelf geregeld kan worden.
Kan iemand hier meer duidelijkheid over geven? Ik dacht juist dat PDO een abstractielaag was die met alle typen databases kan "praten".
Wie weet dit???????
Wie weet dit???????
Ja, maar de SQL-queries verschillen wel eens per platform.
Voor MySQL en MySQLi zijn er overigens geen verschillen, omdat dit op MySQL draait.
Voor Oracle is de SQL structuur op sommige punten weer eens anders, net als voor MsSQL.
Voor MySQL en MySQLi zijn er overigens geen verschillen, omdat dit op MySQL draait.
Voor Oracle is de SQL structuur op sommige punten weer eens anders, net als voor MsSQL.
PDO kan idd met verschillende databases praten maar de manier van sql schrijven is verschillend zoals Ger al aangaf...
de voordeel van pdo is dat je enkel alleen kleine stukjes van de sql code hoeft te verranderen..
de voordeel van pdo is dat je enkel alleen kleine stukjes van de sql code hoeft te verranderen..
Maar het kan dus zijn dat een select query voor MySQL er anders uitziet dan voor bijvoorbeeld Oracle???
Wat is dan eigenlijk nog het nut van zo'n PDO abstractielaag?
Wat is dan eigenlijk nog het nut van zo'n PDO abstractielaag?
Met mysql_* en MySQLi functies kun je alleen met MySQL databases connecten. Met PDO kun je ook met andere databases (zoals bijv. MsSQL) connecten. Alleen de syntax voor queries veranderen wel als je een ander databasetype hebt.
maar daar zou je een functie voor kunnen maken die alles per verschillende database voor je afhandeld
Ik zie nu nog steeds niet het voordeel van PDO als je per database-type verschillende functies moet maken????
Gaat het dan alleen maar om het connecten?
Gaat het dan alleen maar om het connecten?
Het grootste voordeel van PDO vind ik niet het connecten met verschillende database types, maar meer het goede gebruik in OOP en de prepared statements.
Maar het voordeel van PDO ten opzichte van mysql_* of MySQLi is dat je hiermee ook kan omgaan met bijv. MsSQL.
Nu heb je het over extra functies, dit is niet zo. Het is alleen een andere manier van query schrijven. (maar bij wat googlen kan ik geen verschil vinden tussen een MySQL query en een SQLite query in PDO, misschien kan ger dit even onderbouwen?)
Maar het voordeel van PDO ten opzichte van mysql_* of MySQLi is dat je hiermee ook kan omgaan met bijv. MsSQL.
Nu heb je het over extra functies, dit is niet zo. Het is alleen een andere manier van query schrijven. (maar bij wat googlen kan ik geen verschil vinden tussen een MySQL query en een SQLite query in PDO, misschien kan ger dit even onderbouwen?)
Wouter J op 07/10/2011 16:12:43:
Nu heb je het over extra functies, dit is niet zo. Het is alleen een andere manier van query schrijven. (maar bij wat googlen kan ik geen verschil vinden tussen een MySQL query en een SQLite query in PDO, misschien kan ger dit even onderbouwen?)
Ger???
de standaard functies (SELECT, UPDATE, INSERT zijn SQlite het zelfde als in MYSQL, echter zoals ik al eerder zei:
geeft een foutmelding in SQlite
Ook conditionele statements werken niet in SQLite
Ik vind dat dit in die tutorials aangegeven had moeten worden.
Ook staat er in de tutorial uit de link van Aar dat PDO een aanrader is, en daar ben ik het niet geheel mee eens.
Code (php)
1
2
3
4
2
3
4
SELECT field1,field2, field3
FROM
table1
WHERE field1 > (SELECT MAX(field4) FROM table2)
FROM
table1
WHERE field1 > (SELECT MAX(field4) FROM table2)
geeft een foutmelding in SQlite
Ook conditionele statements werken niet in SQLite
Ik vind dat dit in die tutorials aangegeven had moeten worden.
Ook staat er in de tutorial uit de link van Aar dat PDO een aanrader is, en daar ben ik het niet geheel mee eens.
Gewijzigd op 07/10/2011 16:54:52 door Ger van Steenderen
Ik dacht dat PDO bedoeld was om makkelijk tussen databases te kunnen switchen, maar als ik het zo allemaal eens lees is het dus eigenlijk alleen maar de connection waar het om gaat.
Als ik jou was zou ik wel gewoon PDO gaan gebruiken, persoonlijk vind ik het een stuk beter dan mysql_




