Wo liegt in meinem PHP MySQL Code der Fehler?

... komplette Frage anzeigen

4 Antworten

Du versuchst zwei Möglichkeiten der SQL-Abfrage zu vereinen. Die erste Methode bindet die Variable direkt in den SQL-String ein:

$sSQL = "INSERT INTO newchat (name) VALUES ('$string1')";

Die zweite Methode bindet die Parameter nachträglich ein:

$stmt = mysqli_prepare($dbconnect, "INSERT INTO newchat (name) VALUES (?)");
mysqli_stmt_bind_param($stmt, 's', $string1);
mysqli_stmt_execute($stmt);

Du musst dich entscheiden.

Antwort bewerten Vielen Dank für Deine Bewertung

es ist immer ein problem 2 fragestellungen (hier problem injektions und verständnis für das prepare-bind-execute handling) in einer frage unterzubringen. aber hier hängt das doch eng zusammen.

es ist - trotzdem - immer eine schlechte idee, diesselbe frage dann nochmal zu stellen. hier muss ich dem fragesteller vorwerfen, dass er den link von malermeister entweder nicht gelesen hat, oder den inhalt überhaupt nicht verstanden hat. wenn letzteres sollte er das dann mitteilen.

so kann ich verstehen, dass malermeister sauer ist. aber auch für die anderen helfer ist es eine zumutung, 2 threads auf einmal auf den status zu überprüfen.

@fragesteller: schau dir mal genau die prepare, bind_param und execute funktionen im php manual an, gugel auch nach entspr. tutorials.

übrigens: ungeduld hat im wekzeugkasten eines programmieres nichts verloren. ab in den müll (restmüll!) damit.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von RaceShafter
26.04.2016, 14:34

Du hast Recht. Ich habe den Link gelesen. Einmal ganz und ein zweites Mal nur einige Zeilen. Mehr musste ich dann nicht lesen, da ich es beim Zweiten Mal verstanden habe. Ich habe mich bei Malemeister schon entschuldigt. Und wenn er mir nicht mehr hilft verstehe ich das. Aber vor einigen Monaten habe ich mit einem anderen Account unter so viele Antworten kommentiert und nie eine Kommentarantwort erhalten. Nun ist es Gott sei Dank anders. Aber ich dachte halt, dass er den Thread nicht mehr verfolgt oder so.

Gruß

0

Du rufst ein prepared Statement auf das x Parameter hat du übergibst aber die falsche Anzahl an Parametern, also zu wenige oder zu viele.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von RaceShafter
26.04.2016, 14:03

Die Meldung konnte ich auch lesen. Aber ich habe keine Ahnung, wo der Fehler liegt? Habe doch alles richtig angegeben? So, wie es mir von Malemeister erklärt wurde und ich es auf einer Website gelesen habe.

1

Meinst du das du schneller Hilfe bekommst wenn du 2 Fragen auf machst? Was soll sowas?

Naja ist auch egal, ich bin raus hier. Soll dir jemand anderes helfen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von RaceShafter
26.04.2016, 14:01

Nein, ich dachte,du antwortest nicht mehr. Ich habe auch leider nicht den ganzen Tag Zeit zu warten und du nicht den ganzen Tag Zeit meine Fragen zu beantworten. Ich bin ungeduldig ja, das stimmt.

0

Was möchtest Du wissen?