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:

basti1012

Erfahrenes Mitglied
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:

ComFreek

Mod | @comfreek
Moderator
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 :)
 

EuroCent

Klappstuhl 2.0
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 :)
 

VallTeK

Grünschnabel
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?
 

ComFreek

Mod | @comfreek
Moderator
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?
Leider nein, aus der PHP-Thematik bin ich seit Jahren quasi raus :) Das müsste dir jemand anders sagen oder du mal im Internet googeln.
Aber den Begriff "Buch" interpretiere ich recht lose: ich meine nur ein zusammenhängendes Dokument mit einem Narrativ. Das kann auch eine sehr lange Website sein oder ein 10-teiliger Blogpost. Hauptsache aktuell und (hoffentlich) richtig :D
 

Zvoni

Erfahrenes Mitglied
Leider nein, aus der PHP-Thematik bin ich seit Jahren quasi raus :) Das müsste dir jemand anders sagen oder du mal im Internet googeln.
Aber den Begriff "Buch" interpretiere ich recht lose: ich meine nur ein zusammenhängendes Dokument mit einem Narrativ. Das kann auch eine sehr lange Website sein oder ein 10-teiliger Blogpost. Hauptsache aktuell und (hoffentlich) richtig :D
Bruahahahahaha......
Stell 10 Programmierern ein und diesselbe Frage, und du bekommst 42 Antworten.....
 

ComFreek

Mod | @comfreek
Moderator
Aber eine API-Doku ersetzt kein zusammenhängendes Narrativ. Da entstehen genau solche Probleme wie Überschreiten der PHP-HTML-Grenze ohne gescheites Escaping. Sowas lernst du nicht zwingend aus einem Stapel von API-Funktionen, sondern nur mit einem Grundlagentext.
 

basti1012

Erfahrenes Mitglied
Nagut, ohne Grundkenntnisse zu können ist das vieleicht etwas schwer.
Aber was für eine Tutorial Seite soll man einen Anfänger empfehlen ?
Viele sind veraltet, falsch oder haben von Best Practice noch nix gehöhrt.
Bei php.net weiß man zumindestens das es aktuell ist ( und bleibt ) und veraltete sachen sofort markiert werden.
 

Zvoni

Erfahrenes Mitglied
Mal von dem her abgesehen, dass hier "anscheinend" Grundkenntnisse fehlen, welche mit dem verwendeten Frontend/Programmiersprache mal gar nix zu tun haben (Datenbank-Design/Logik).
 

ComFreek

Mod | @comfreek
Moderator
Aber was für eine Tutorial Seite soll man einen Anfänger empfehlen ?
Viele sind veraltet, falsch oder haben von Best Practice noch nix gehöhrt.
Ganz genau! 100% Zustimmung :)
Und deswegen verweise ich nie auf Tutorials oder Bücher hier. Es tut mir zwar leid zu sagen, dass ein längeres Tutorial/Buch gelesen werden sollte, ohne ein genaues anzugeben, aber auf den meisten Gebieten dieses Forums (PHP, MySQL, JS) kenne ich selbst keine aktuellen mehr.
Da hoffe ich einfach, dass die Menschen selbst online bisschen nach "PHP beginner tutorial 2020", "PHP book 2020" oder so googeln können.
 
Zuletzt bearbeitet:

Neue Beiträge

Forum-Statistiken

Themen
272.361
Beiträge
1.558.639
Mitglieder
187.834
Neuestes Mitglied
jordanx0206