PDO execute en lastinsertid
Mark Hogeveen
04/09/2013 20:55:56Hallo mensen,
Ik heb de laatste tijd veel problemen met PDO. Ik ben oude codes aan het vernieuwen en aan het kijken of ik er nog iets mee kan.
Nu heb ik 2 vragen over PDO waar ik nauwelijks het antwoord op vind op internet.
Vraag 1:
PDO heeft een method lastInsertId(), die geeft het id van het laatste record terug.
Wat is dat id? Ik dacht dat dit het id van de kolom "id" is. (De bekende auto_increment kolom) maar wat als een tabel geen id kolom heeft? En hoe weet PDO dat hij het id uit de juiste kolom haalt? Een kolom kan ook bijvoorbeeld user_id heten.
Of denk ik nu helemaal verkeerd en is lastInsertId iets heel anders?
Vraag 2:
Hoe doe je het aantal geselecteerde rijen van een SELECT query krijgen?
Ik zie steeds rowCount(), maar die method is alleen bedoeld om het aantal effected rows te krijgen. En wordt alleen gebruikt bij een insert, update of delete query. (dus het zelfde als mysql_effected_rows)
Hoe krijg ik net als bij mysql_num_rows, het aantal geselecteerde rijen?
En let op, graag niet met de manier dat je een array maakt van alle geselecteerde rijen, en dan het aantal elementen in de array telt, want dat kan slecht werken als je (bijvoorbeeld) een paar duizend, of zelfs miljoenen rijen selecteert.
Alvast bedankt voor jullie hulp.
Ik heb de laatste tijd veel problemen met PDO. Ik ben oude codes aan het vernieuwen en aan het kijken of ik er nog iets mee kan.
Nu heb ik 2 vragen over PDO waar ik nauwelijks het antwoord op vind op internet.
Vraag 1:
PDO heeft een method lastInsertId(), die geeft het id van het laatste record terug.
Wat is dat id? Ik dacht dat dit het id van de kolom "id" is. (De bekende auto_increment kolom) maar wat als een tabel geen id kolom heeft? En hoe weet PDO dat hij het id uit de juiste kolom haalt? Een kolom kan ook bijvoorbeeld user_id heten.
Of denk ik nu helemaal verkeerd en is lastInsertId iets heel anders?
Vraag 2:
Hoe doe je het aantal geselecteerde rijen van een SELECT query krijgen?
Ik zie steeds rowCount(), maar die method is alleen bedoeld om het aantal effected rows te krijgen. En wordt alleen gebruikt bij een insert, update of delete query. (dus het zelfde als mysql_effected_rows)
Hoe krijg ik net als bij mysql_num_rows, het aantal geselecteerde rijen?
En let op, graag niet met de manier dat je een array maakt van alle geselecteerde rijen, en dan het aantal elementen in de array telt, want dat kan slecht werken als je (bijvoorbeeld) een paar duizend, of zelfs miljoenen rijen selecteert.
Alvast bedankt voor jullie hulp.
Gewijzigd op 04/09/2013 20:56:49 door Mark Hogeveen
PHP hulp
17/11/2024 13:27:50Frank Nietbelangrijk
04/09/2013 21:37:56vraag 1: inserted id is inderdaad het zojuist gegenereerde id van de auto_increment kolom. Als deze niet bestaat krijg je 0 terug.
vraag 2:
geeft:
vraag 2:
geeft:
Gewijzigd op 04/09/2013 21:38:42 door Frank Nietbelangrijk