Ik ben bezig een programma van de bodem af te herschrijven. Het oude programma maakt gebruik van de 'gewone' mysql functies van PHP en gebruikt MyIsam als storage engine. Nu wil ik alles goed en degelijk opzetten met zo min mogelijk kans op database inconsistentie.
Omdat het om een applicatie gaat die relatief veel aan INSERTS doet leek het me een slim plan om transacties in te gaan voeren. Ook omdat er vaak in 2 of meer tabellen toegevoegd wordt, waarbij dan over id's wordt gekoppeld.
Ik heb begrepen dat dan InnoDB de beste optie is als storage engine, omdat MyIsam niet aan transcations doet.
Tot zover is het mij redelijk helder.
Nu wilde ik ook de database functies herschrijven die de app gebruikt om de database te benaderen. D.m.v prepared statements wil ik SQL injecties uit de weg ruimen. Nu zijn daar volgens mij 2 mogelijkheden voor:
- PDO
- MySQLi
Voor de laatste heb ik vandaag een class geschrijven. Wat mij echter opviel was dat het heel erg lastig (althans voor mij) was om van een query resultaat normaal de data eruit te loopen. Bij de oude mysql extensie kon ik gewoon mysql_fetch_row() o.i.d. op een result gooien en dan kwam er data uit. Bij MySQLi zit ik te klooien met mysqli_fetch_field(), mysqli_stmt_bind_result(), mysqli_stmt_fetch() en weet ik veel wat allemaal nog meer. Denk ik te moeilijk of kan dit makkelijker met MySQLi?
Of: Is PDO een betere oplossing voor mijn situatie?
Het liefst programmeer ik procedureel (vraag me niet waarom, het is zo) en daarom was mijn oog gevallen op MySQLi. Of kan ik met PDO ook procedureel programmeren?
Omdat het om een applicatie gaat die relatief veel aan INSERTS doet leek het me een slim plan om transacties in te gaan voeren. Ook omdat er vaak in 2 of meer tabellen toegevoegd wordt, waarbij dan over id's wordt gekoppeld.
Ik heb begrepen dat dan InnoDB de beste optie is als storage engine, omdat MyIsam niet aan transcations doet.
Tot zover is het mij redelijk helder.
Nu wilde ik ook de database functies herschrijven die de app gebruikt om de database te benaderen. D.m.v prepared statements wil ik SQL injecties uit de weg ruimen. Nu zijn daar volgens mij 2 mogelijkheden voor:
- PDO
- MySQLi
Voor de laatste heb ik vandaag een class geschrijven. Wat mij echter opviel was dat het heel erg lastig (althans voor mij) was om van een query resultaat normaal de data eruit te loopen. Bij de oude mysql extensie kon ik gewoon mysql_fetch_row() o.i.d. op een result gooien en dan kwam er data uit. Bij MySQLi zit ik te klooien met mysqli_fetch_field(), mysqli_stmt_bind_result(), mysqli_stmt_fetch() en weet ik veel wat allemaal nog meer. Denk ik te moeilijk of kan dit makkelijker met MySQLi?
Of: Is PDO een betere oplossing voor mijn situatie?
Het liefst programmeer ik procedureel (vraag me niet waarom, het is zo) en daarom was mijn oog gevallen op MySQLi. Of kan ik met PDO ook procedureel programmeren?