Thomas. Skrevet 6. oktober 2010 Del Skrevet 6. oktober 2010 Heisann Har et lite problem her. Lager et sidesystem, og så fungerer det ikke bruke prepared statements? fungerer det ikke bruke prepared statements på LIMIT funksjonen? Får følgende feilmelding: ERROR: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0','15'' at line 1 Kode: isset($_GET['sid']) ? $page = $_GET['sid'] : $page = 1; $fd = $_GET['s']; $start_hent = ($page-1) * $fd; $sql2 = Database::getInstance()->prepare('SELECT * FROM tabell ORDER BY id DESC LIMIT ?,?'); $sql2->execute(array($start_hent, $fd)); Har søkt litt rundt, sett noen andre eksempler som bruker samme metode. Så skal være riktig. Lenke til kommentar
BlueEAGLE Skrevet 6. oktober 2010 Del Skrevet 6. oktober 2010 (endret) For meg så ser det ut som at MySQL mottar 0 og 15 som strengverdier. Edit: prøv $sql2->execute(array((int)$start_hent, (int)$fd)); Endret 6. oktober 2010 av BlueEAGLE Lenke til kommentar
FraXinuS Skrevet 6. oktober 2010 Del Skrevet 6. oktober 2010 Tror du må bruke PDOStatement::bindParam for at det skal funke. Prøv noe slik som dette: $sql2 = Database::getInstance()->prepare('SELECT * FROM tabell ORDER BY id DESC LIMIT ?,?'); $sql2->>bindParam(1, $start_hent, PDO::PARAM_INT); $sql2->>bindParam(2, $fd, PDO::PARAM_INT); $sql2->execute(); Lenke til kommentar
Thomas. Skrevet 6. oktober 2010 Forfatter Del Skrevet 6. oktober 2010 Takk for svar Løsningen ble en kombinasjon av forslagene deres isset($_GET['sid']) ? $page = $_GET['sid'] : $page = 1; $fd = (int)$_GET['s']; $start_hent = ($page-1) * $fd; $sql2 = Database::getInstance()->prepare('SELECT * FROM bruktbil ORDER BY id DESC LIMIT ?,?'); $sql2->bindParam(1, $start_hent, PDO::PARAM_INT); $sql2->bindParam(2, $fd, PDO::PARAM_INT); $sql2->execute(); Lenke til kommentar
BlueEAGLE Skrevet 7. oktober 2010 Del Skrevet 7. oktober 2010 Jeg går ut i fra at du har validert hele $_GET[]-matrisen før du begynner å tilordne den til variabler som blir brukt andre steder. Det er jo tross alt helt i orden å redigere en URL og skrive page.php?sid=jalla&admin=1 (gud forby at noen sjekker if($_GET['admin']) show_admin_interface(); Lenke til kommentar
AlecTBM Skrevet 7. oktober 2010 Del Skrevet 7. oktober 2010 BlueEAGLE: Derfor vi har Prepared statement og PDO Lenke til kommentar
BlueEAGLE Skrevet 8. oktober 2010 Del Skrevet 8. oktober 2010 BlueEAGLE: Derfor vi har Prepared statement og PDO Det vil ikke hjelpe mot if($_GET['admin']) show_delete_button(); vil det vel? Lenke til kommentar
AlecTBM Skrevet 8. oktober 2010 Del Skrevet 8. oktober 2010 Sorry, men jeg trudde du snakka om noe som hadde en fjerneste anelse med topic å gjøre. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå