Ik heb een login pagina geschreven in pdo, alleen ik heb een klein probleempje, als ik probeer in te loggen dan kan hij geen rows vinden terwijl de login informatie correct is.
Ik heb een login pagina geschreven in pdo, alleen ik heb een klein probleempje, als ik probeer in te loggen dan kan hij geen rows vinden terwijl de login informatie correct is.
de veranderingen zijn:
quotes om de variabeles weg gehaalt(in de query) en in bindvalue 2 kleine dingen verander, de param toevoegen en ze een naam geven
uit PHP manual:
'PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.'
dit is een SELECT, dus werkt dat niet. je moet de PHP functie count() gebruiken op je resultaten in de if. verder:
- niet selecteren met *, maar ieder veld benoemen
- geen backticks
-niet variabelen kopieren in regel 4-6
uit PHP manual:
'PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.'
dit is een SELECT, dus werkt dat niet. je moet de PHP functie count() gebruiken op je resultaten in de if. verder:
- niet selecteren met *, maar ieder veld benoemen
- geen backticks
-niet variabelen kopieren in regel 4-6
PDOStatement::rowCount() werkt idd niet als je direct een query uitvoerd, echter wel als je prepare en execute doet
Na verder te googlen heb ik het gevonden, blijkbaar kon ik dus niet gelijk sha1() invoegen in de bindparam.
Dus heb ik het zo gedaan een extra variable aanmaken en invoegen in de bindparam.
En de uitleg waarom is dat bindparam een referentie naar de variabele pakt om meerdere queries achter elkaar uit te kunnen voeren. Dat betekent dat je bijvoorbeeld 10 records kan invoeren, zonder dat je de hele tijd de waardes direct hoeft mee te geven. Je verbind een variabele via bindparam en elke keer dat je de query uitvoert zal de database driver naar de waarde kijken die op dat moment in die variabele zit.
Een functie kan je echter niet op die manier meegeven, want een functie heeft geen vast geheugenadres. Vandaar dat je de foutmelding kreeg.