PHP PHP-Fehler bei SQL-Abfrage

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Hallo zusammen,

ich versuche gerade zwei Datenbank-Abfragen zu erstellen.
Die erste Abfrage läuft durch, bei der zweiten (fast identischen) Anfrage,
erhalte ich eine Fehlermeldung. Vielleicht hat von euch einer den ent-
scheidenden Hinweis, was ich hier falsch mache!?

PHP:
define("HOST",      "###");
define("USER",      "###");
define("PASSWORD",  "###");
define("DATABASE",  "###");

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);

$stmt_reg1 = $mysqli->prepare("SELECT kd_id, N, S unternehmen FROM kunde WHERE N = 1 AND S = 0 LIMIT 3");
$stmt_reg1->execute();

$stmt_reg2 = $mysqli->prepare("SELECT kd_id, N, S unternehmen FROM kunde WHERE N = 0 AND S = 1 LIMIT 3");
$stmt_reg2->execute();

Folgende Fehlermeldung erhalte ich:
AH01071: Got error 'PHP message: PHP Fatal error: Call to a member function execute() on boolean in /var/www/vhosts/news.php on line 34\n'

Zeile 34 verweist auf: $stmt_reg2->execute();

VG, David
 
Ist das 1:1 der Code der ausgeführt wird, oder hast du ihn hier fürs Forum gekürzt?
Fehlt da nicht ein Komma zwischen S und unternehmen? Die Fehlermeldung jedenfalls besagt, dass prepare einen boolean zurückgibt. Lt. Doku: "returns a statement object or FALSE if an error occurred"
 
  • Gefällt mir
Reaktionen: Lawnmower
deine prepare() - function hat sehr wahrscheinlich FALSE zurück geliefert und deswegen gehts nicht weiter.

Code:
$stmt_reg1 = $mysqli->prepare("SELECT kd_id, N, S unternehmen FROM kunde WHERE N = 1 AND S = 0 LIMIT 3");

if ($stmt_reg1 === false) {
         die "prepare failed:" . mysqli_connect_error();
}
$stmt_reg1->execute();

Versuch mal das, da müsste der genaue Fehler ausgespuckt werden
 
Das ist der 100%ige Code.
Ein Komma zwischen S und unternehmen fehlte
tatsächlich, hat den Fehler aber nicht beseitigen
können.

Auch das Beispiel von cppnap funktioniert leider nicht.

Beide SELECT-Abfragen geben direkt über phpMyAdmin perfekte Ergebnisse aus.
Allerdings ist mir aufgefallen, dass nur die zweite Query nicht funktioniert.
Tausche ist die beiden miteinander, funktioniert weiterhin die zweite Query nicht.

Habe ich vielleicht etwas falsch gemacht, um zwei Querys unabhängig vonein-
ander laufen zu lassen? Muss ich mglw. zwischen den beiden was 'resetten'?
 
Wahrscheinlich ein Bug der Kategorie "pending result set" oder so. Einfach mal das Ergebnis fetchen und damit das Recordset leeren?
 
Zurück
Oben