• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Code klappt nicht...?

Bengman

Mitglied
Hi, der Code müsste eigentlich richtig sein, dennoch kommt die Fehler meldung

Warning: mysqli_query() expects at least 2 parameters, 1 given in

Bei dem Code:
PHP:
$comment = $_GET["comment"];
$email = $_GET["email"];

$connection = mysqli_connect("localhost", "name", "passwrt", "db") or die ("Tut uns leid, da ist was schief gelaufen!");

if($comment =="" and $email =="") {
   echo "Du musst beide Felder ausfüllen"; }
   elseif($comment !="" and $email !="") {

  $infos = "INSERT INTO tabelle
  (comment, email) VALUES ('comment', 'email')";

  $save = mysqli_query($infos);

  if($save =true) {
      echo "Noch ein Kommentar schreiben?";
    }else {
      echo "Tut uns leid, da ist etwas schief gelaufen!";
    }
}
mysqli_close($connection);

Wenn beide Felder ausgefüllt sind, steht dort auch "Noch einen Kommentar schreiben?" .. Dennoch gibt es keinen Eintrag im DB???

Ich bin total verwirrt... Kann einer helfen?
 
Zuletzt bearbeitet:
Werbung:
mysqli_query benötigt als ersten Parameter den Verweis auf die Verbindung (in deinem Fall $connection) und als zweiten den SQL-Code.
 
Werbung:
Dein Code ist anfällig für SQL Injections. Benutzereingaben (z.B. aus einem Formular oder aus der URL), dürfen niemals ungefiltert in SQL-Strings eingebaut werden. Ein Angreifer wäre sonst in der Lage aktiven Code in Dein SQL einzuschleusen. SQL Injections gehören zu den gefährlichsten und weitverbreitesten Fehlern bei Webanwendugen. Dabei ist ihre Vermeidung recht einfach. PHP stellt für jede unterstützte Datenbank eine Funktion zum Entschärfen von Benutzereingaben zur Verfügung.

Für mysqli erledigt das mysqli_real_escape_string() bzw. für die veraltete mysql-Extension mysql_real_escape_string().

Außerdem bieten die beiden neueren Extensions PDO und mysqli die Möglichkeit, prepared Statements zu verwenden. In diesem Fall kümmern sich PHP und die Datenbank selbst um das Maskieren von gefährlichen Sonderzeichen.
 
Zurück
Oben