Michael: Nächstes Problem: LIMIT mit Variablen

Beitrag lesen

Hallo Dedlfix,

sorry, aber ich versteh nicht, was Du meinst. :-(

Du verwendest die Variable $startposition nicht. Stattdessen steht in $aktion kurz vorm Schluss die Zeichenkette '$startposition'.

Aber wieso? Wenn bei var_dump ein "  3(int)  " rauskommt, dann heißt das doch, die Variable ist eine Zahl mit dem Wert 3 und _kein_ String.

Nimm dir ein Grundlagenkapitel zu Strings unter PHP und vor allem den Unterschied zwischen '' und "" beim Interpretieren von Variablen noch einmal genauer zur Brust.

Worauf willst Du mich hinweisen?

Fehler abfangen statt einfach weiterzumachen, als ob immer schönes Wetter ist, zeichnen ein robustes Script aus.

OK, und was soll ich also anders machen? Bei _unverändertem_ Skript funktioniert es ja, wenn ich _statt_ Variablen Zahlen verwende, also was an meiner Zeile ist falsch?

Übrigens, die Werte für LIMIT kann man nicht per Platzhalter in einem Prepared Statement übergeben.

Ich hab hier überhaupt kein Prepared Statement, sondern eine einfache Abfrage.

Die müssen direkt reingeschrieben werden.

Bei einer Blätterfunktion? Wo sich die Startposition laufend ändert? Wie soll das mit fixen Zahlen gehen? Da _muß_ ich mit Variablen arbeiten.

Wenn du nicht absolut sicher bist, dass es Zahlen sind, musst du noch dafür sorgen, dass sie welche werden, sonst hast du da am Prepared-Statement-Mechanismus vorbei eine SQL-Injection-Lücke geschaffen.

Ich sagte doch, ich _weiß_ dass es eine Zahl ist.

  
$startposition=3;  
$aktion='SELECT `testbank_id`, `testbank_vorname`, `testbank_familienname` FROM `014_testbank` LIMIT $startposition,4';

Wie gesagt, ich habe weiter Null Ahnung, was ich anders schreiben muß. :-(

MfG

Michael