Prepared Statement Ahnungslos...

Loddar1

Erfahrenes Mitglied
Hallo zusammen,
Ich verstehe den unterschied von:

PHP:
$result = mysqli_query($mysqli,"SELECT id,name FROM tabelle WHERE ocat='$ol[id]' AND block='0'");
while ($ul = mysqli_fetch_array($result)) {

und

PHP:
$stmt = $mysqli->prepare("SELECT id,name FROM tabelle WHERE ocat=? AND block=?");
$ocat = $ol['id'];
$block = 0;
$stmt->bind_param('ii', $ocat,$block);
$stmt->execute();
$result = $stmt->get_result();
while ($ul = $result->fetch_assoc()) {

nicht, es müßte doch eigentlich das gleiche angezeigt werden oder?

ocat steht für Kategorie 0 Oberkategorie
und 1 bis ... für Unterkategorie

Kann mir einer helfen?

Ich komme mal wieder nicht weiter
 

Yaslaw

n/a
Moderator
bei 1) sind beide Parameter als String. Du umfasst sie mit '
bei 2) definierst du sie als Integer.

Und '0' ist nicht gleich 0

Für das gleiche:
PHP:
//entweder
$result = mysqli_query($mysqli,"SELECT id,name FROM tabelle WHERE ocat=$ol[id] AND block=0");

//oder
$stmt->bind_param('ss', $ocat,$block);
 

Loddar1

Erfahrenes Mitglied
Habe deine Antwort mit dem Handy gelesen, habe Fußball geguckt und dann mit meinem Hund Gassi gegangen.
Das was Du mir geschrieben hast, habe ich ausprobiert hat nicht funktioniert, konnte es ja auch nicht.
Ich habe übersehen das ich $result schon vorher benutzt habe und deshalb wurde nicht das gleiche angezeigt jetzt habe ich $result geändert und es zeigt alles richtig an!

Aber Danke, das mit der Null mit' und ohne wußte ich nicht.