2 Warnungen und einen fatal error...

Big-A

Mitglied
Hallo liebe Forums Mitgleider,

ich habe mal wieder eine Frage...dieses mal geht es um Fehlermeldungen, worauf ich leider keine Lösung weiß.

Ich bin dabei, meine Seite etwas sicherer zu gestalten, ich möchte verhindern, das man eine SQL-Injektion machen kann.

Ich wollte nun die Datentrückgabe etwas sicherer gestallten, mit Hilfe von dem Prepared Statement. Nun werden mir aber 2 Warnungen und ein fatal error ausgegeben.

1. Warning: mysqli_prepare() expects parameter 1 to be mysqli, resource given
2. Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, null given
3. Fatal error: Call to undefined function mysql_stmt_execute()

Das ist mein Code dazu:

PHP:
	$stmt = mysqli_prepare($res,"INSERT INTO Kundendaten (Firma, Nachname, Vorname, Strasse, Hausnummer, PLZ, Ort, Telefonnummer, Fax, Mail, Datum) VALUES (?, ?, ?,?, ?, ?,?, ?, ?,?, ?)");
			
			//Parameter daran binden
			mysqli_stmt_bind_param($stmt, $Firma, $Nachname, $Vorname, $Strasse, $Hausnummer, $PLZ, $Ort, $telefonnummer, $Fax, $Mail, $Datum);	
				
			//Preparde Statement ausführen
			mysql_stmt_execute($stmt);
			
			mysqli_stmt_bind_result($stmt, $ID);

			mysqli_stmt_fetch($stmt);
			
			//das Statement schließen
			mysql_stmt_close($stmt);
			
			//Verbindung schließen
			mysqli_close();

Ich hoffe, das ihr mir helfen könnt. :-(
 
PHP:
$res = mysql_connect("localhost","root","Passwort") or die ("Keine Verbindung moeglich"); // Verbindung zum Server
 
Wenn du mit mysqli arbeiten willst, dann solltest du auch den mysqli-Connect verwenden. mysql und mysqli sind grundsätzlich nicht kombinierbar. Also alle deine Befehle umschreiben
PHP:
$res = mysqli_connect("localhost","root","Passwort") or die ("Keine Verbindung moeglich");
....
mysqli_stmt_execute($stmt);
...
mysqli_stmt_close($stmt);
...

Nachtrag: Am besten gleich auf die OO-Variante umsteigen und mit der MySQLi-Klasse arbeiten
 
ok...

Nun habe ich aber noch mehr Fehlermeldungen also vorher :(

1. Warning: mysqli_prepare() expects parameter 1 to be mysqli, resource given in...
2. Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, null given in...
3. Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, null given in...
4. Warning: mysqli_stmt_bind_result() expects parameter 1 to be mysqli_stmt, null given in...
5. Warning: mysqli_stmt_fetch() expects parameter 1 to be mysqli_stmt, null given in...
usw.

Wieso werden die mir angezeigt und was ist daran falsch? :(

was meinst du mit: "Am besten gleich auf die OO-Variante umsteigen und mit der MySQLi-Klasse arbeiten" ?
 
Zuletzt bearbeitet:
Ok, Verbindung steht wieder...aber nun kommt das!?

1. Warning: mysqli_stmt_bind_param() [function.mysqli-stmt-bind-param]: Number of elements in type definition string doesn't match number of bind variables in ...
2. Warning: mysqli_close() expects exactly 1 parameter, 0 given in...
3. Catchable fatal error: Object of class mysqli_stmt could not be converted to string in...
 
Zeile 45 ist es.
Ne, im Ernst. Seit du das letzte mal dein Code gepostet hast, hast du diverse Änderungen gemacht. Diese sehen wir hier nicht. Ergo können wir nur raten. Und ich rate nun mal, dass du in de Zeile mit dem mysqli_stmt_bind_param() oder davor irgend einen Fehler hast.
Wenn du die Fehlermeldung liest, könnte es also sein, dass du zu wenig oder zu viele Parameter mitgibst.
Also, her mit dem Code.
 
Zurück