Gå til innhold

Prepared statements, LIMIT i spørring?


Anbefalte innlegg

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
Videoannonse
Annonse

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

Takk for svar :)

Løsningen ble en kombinasjon av forslagene deres :D

 

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...