0 0 Stimmen

PHP: MySQL Abfrage innerhalb einer Funktion

Frage von Chematik | 26.12.2011 um 18:06 Uhr

Ich habe möchte eine MySQL Abfrage in einer Funktion in PHP ausführen. Mein Code sieht etwa so aus, alles was unwichtig ist, habe ich mal rausgelassen und stattdessen die drei Punkte geschrieben.

function CheckID($id) {
   $anfrage = "... WHERE id = $id";
   mysql_db_query($db, $anfrage, $verb);
}

//...

//Aufruf der Funktion führt zum Fehler:
CheckID($id); 

//Identischer Code aus der Funktion an selber Stelle
//funktioniert einwandfrei:
$anfrage = "... WHERE id = $id";
mysql_db_query($db, $anfrage, $verb);

Nun führt dies aber permanent zu dieser Fehlermeldung:

Warning: mysql_db_query() expects parameter 3 to be resource, 
null given in XXX.php on line 16

Warning: mysql_fetch_row() expects parameter 1 to be resource, 
null given in XXX.php on line 17

Ich habe keine Ahnung, wo der Fehler steckt. Denn wenn ich statt dem Aufruf der Funktion an der selben Stelle den Code aus der Funktion aufschreibe, funktioniert alles einwandfrei!

AntwortenPositivNegativDatumStimmen

Stefan Trost

Profil anzeigen | Nachricht
Avatar
3Beste Antwort
3 Stimmen

Ich nehme an, es liegt an deinen Variablen $db und $verb, die du vermutlich mit einem include() außerhalb der Funktion einbindest. Das führt allerdings dazu, dass die beiden Variablen innerhalb der Funktion nicht definiert sind und so kommt es zu den entsprechenden Fehlermeldungen, dass die Parameter nicht definiert sind.

Probiere es mal so, indem du die Parameter an die Funktion übergibst und damit auch innerhalb der Funktion verfügbar machst:

function CheckID($id, $db, $verb) { /*...*/ }

//Aufruf:
CheckID($id, $db, $verb);

Alternativ könntest du die Variablen innerhalb der Funktion auch neu definieren oder neu einbinden.
29.12.2011 um 07:34 Uhr

AntwortenPositiv Negativ

Chematik

Profil anzeigen | Nachricht
Avatar
00 Stimmen

Danke, vielen Dank! Mein Tag ist gerettet! Du glaubst nicht, wie lange ich an dieser Funktion saß und nicht weiter machen konnte und schon dachte, ich müsste jetzt an jeder Stelle den Code reinschreiben! Das wäre ja niemals mehr zu warten gewesen!

Aber genau das war der Fehler!! Da wäre ich nie selber drauf gekommen!!!
31.12.2011 um 17:05 Uhr

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.