Malcolm Beck´s: Frage zu Prepared Statement

Beitrag lesen

hi,

  

> > $myquery = $_SERVER['REQUEST_URI'];   // muss ich hier Escapen?

Nein, denn die nächste Zeile überschreibt die Variable sofort wieder.

Ich wollte das Posting nicht zu gross gestalten, Generell meinte ich alle URI Abfragen, egal ob Query oder Request Uri

$myquery = $_GET['kategorie'];        // muss ich hier Escapen?
Nein, verifizieren: #1039

Genau deshalb frage ich, es heisst:

// Die Parameter für Prepared Statements müssen nicht maskiert werden. Der Treiber übernimmt das für Sie.

Leider steht nirgends geschrieben, wie dass mit den Usereingaben, egal woher sie kommen, aussieht.
Es ist ja auch nicht schwer die Eingaben zu validieren,

$myquery = mysqli_real_escape_string($verbindung, $_GET['kategorie']);

Nur weiss ich nicht, ob dass jetzt doppelt escaped wird, dass wäre ja nicht erwünscht.

dann prüfe das z.B. so (Perl-Syntax): $myquery=~/^\d+$/ or die "Hack mich nicht!";

Brauch ich ja nicht einmal, es geht nur um escapen.

// warum bin ich der einzige, der mit . seine Tabellen verknüpfen muss?
Mußt Du  ja nicht. Das ist in diesem Stückchen Code vollkommen überflüssig, es sei denn, Du machst sehr exotische Sachen mit der Datenbank.

Ahh, das brauche ich wohl nur, wenn ich in der SELECT mehrere Tabellen anspreche, Danke.

// wie baue ich aus dem Resultat ein array?
Wiederhole fetch, bis es kein Ergebnis mehr liefert. Bei jedem Durchlauf wird $haupt_gruppe mit der nächsten Ergebniszeile überschrieben. Ich denke, fetch() dürfte einen entsprechenden Rückgabewert haben => RT(F)M.

Ja, IRT(F)M, der Rückgabewert ist String oder Integer.

Ich werd's mal mit der PDO probieren.

mfg