mysqli_query() expects at least 2 parameters, 1 given

VallTeK

Grünschnabel
Hallo.
Ich mache gerade ein Register/Login System. Doch hier
habe ich einen Fehler.
Ich habe ein Problem nämlich mit diesem Error:
mysqli_query() expects at least 2 parameters, 1 given

Es wird der Code:
PHP:
$res = mysqli_query($sql);
damit gemeint aber ich weis nicht was das Problem ist.

hier ist der komplette Code von der Datei:
PHP:
<?php
  include"connect.php";
  $username = $_POST['username'];
  $password = $_POST['password'];

  $sql = "INSERT INTO forum.users(username, password)
      VALUES ('$username', '$password');
  ";
  $res = mysqli_query($sql);
  if ($res) {
    echo "Erfolgreich registriert mit dem Benutzernamen : ".$username;
  } else {
    echo "Registrieren fehlgeschlagen. (Bitte stelle sicher das du alle Felder ausgefüllt hast.)<br/>";
    echo "Msql Error : ".mysqli_error();
  }
?>

Kann mir jemand helfen?
 
Zuletzt bearbeitet:
Wo ist den die Verbindung zur Datenbank ?
Das sollte so ungefähr aussehen

PHP:
$sql = "INSERT INTO `forum.users` (`username`, `password`)  VALUES ('$username', '$password')";
$mysqli=mysqli_connect("localhost", "", "", "");
$res = mysqli_query($mysqli,$sql);
if ($res) {
...
Auserdem hast du Sql Injections Gefahr in deinen Code.
Du solltest mysqli_real_escape_string() benutzen
 
Zuletzt bearbeitet:
Insgesamt also folgende Baustellen:
  • SQL Injection
  • Kaputte Businesslogik: doppelte Nutzernamen ohne weiteres Identifizierungsmerkmal (z. B. E-Mail-Adresse)
  • Passwörter werden im Klartext in der DB gespeichert
  • Interne Fehler (mysqli_error) werden ausgegeben
  • XSS
@VallTeK Vielleicht solltest du dir ein Grundlagenbuch auf dem Gebiet von PHP schnappen und das durcharbeiten :)
 
Hallo.
Ich mache gerade ein Register/Login System. Doch hier
habe ich einen Fehler.
Ich habe ein Problem nämlich mit diesem Error:
mysqli_query() expects at least 2 parameters, 1 given

Es wird der Code:
PHP:
$res = mysqli_query($sql);
damit gemeint aber ich weis nicht was das Problem ist.

hier ist der komplette Code von der Datei:
PHP:
<?php
  include"connect.php";
  $username = $_POST['username'];
  $password = $_POST['password'];

  $sql = "INSERT INTO forum.users(username, password)
      VALUES ('$username', '$password');
  ";
  $res = mysqli_query($sql);
  if ($res) {
    echo "Erfolgreich registriert mit dem Benutzernamen : ".$username;
  } else {
    echo "Registrieren fehlgeschlagen. (Bitte stelle sicher das du alle Felder ausgefüllt hast.)<br/>";
    echo "Msql Error : ".mysqli_error();
  }
?>

Kann mir jemand helfen?
Zum einen fehlt dem mysqli_query eine Connection oder ein Link.
Denn wo bitte soll mysqli_query wissen, auf welche Datenbank er connecten soll?

Hier mal eine Datenbank-Klasse die Ich oft verwende, vielleicht nicht die beste :)
https://www.tutorials.de/threads/datenbank-klasse-mysqli-verbesserung.405203/
 
Insgesamt also folgende Baustellen:
  • SQL Injection
  • Kaputte Businesslogik: doppelte Nutzernamen ohne weiteres Identifizierungsmerkmal (z. B. E-Mail-Adresse)
  • Passwörter werden im Klartext in der DB gespeichert
  • Interne Fehler (mysqli_error) werden ausgegeben
  • XSS
@VallTeK Vielleicht solltest du dir ein Grundlagenbuch auf dem Gebiet von PHP schnappen und das durcharbeiten :)
Ich habe das ganze von einem Tutorial abgeschrieben aber durch die ganzen Antworten gemerkt dass das Tutorial wohl der größte Müll ist. Könntest du ein Grundlagen Buch empfehlen?
 

Neue Beiträge

Zurück