Problem mit PHP und MySQL

Lukaszki

Neu angemeldet
Registriert
13 Jan. 2019
Beiträge
5
Hi Leute,
ich habe ein Problem mit PHP und MySQL.
PHPCode:
<?php
// Zum Aufbau der Verbindung zur Datenbank
define("HOST", "localhost");
define("BENUTZER", "root");
define("PASSWORT", ""); // Gebe ich nicht hier an, aber es exisiert
// Datenbank-Verbindung herstellen.
$db_link = mysqli_connect(HOST, BENUTZER, PASSWORT);
// MySQL-Befehl der Variablen $sql zuweisen
$sql = "CREATE DATABASE 'allesDB'";
$db_erg = mysqli_query(($db_link . $sql) || die (mysqli_error(mysqli_connect(HOST, BENUTZER, PASSWORT))));
$sql = "CREATE TABLE 'privat_table' ("
."'id' BIGINT() NOT NULL,"
."'titel' VARCHAR(255) NULL,"
."'vorname' VARCHAR(255) NULL,"
."'nachname' VARCHAR(255) NULL,"
."'strasse' VARCHAR(255) NULL,"
."'plz' INT(5) NULL,"
."'stadt' VARCHAR(255) NULL,"
."'telefon' VARCHAR(30) NULL,"
."'mobil' INT(30) NULL,"
."'kundennummer' int(10) NOT NULL,"
."AUTO_INCREMENT(id), PRIMARY KEY(id)) INTO alles_DB";
// MySQL-Anweisung ausführen lassen
$db_erg = mysqli_query(($db_link . $sql) || die (mysqli_error(mysqli_connect(HOST, BENUTZER, PASSWORT))));
?>

MySQL warnt mich, dass das Passwort fehlt.
Aber es steht doch da?
Was soll ich tun.
Gruß, Lukaszki
 
Da PHP keine vernünftige Typisierung hat würde ich als erstes mal normale Variablen benutzen.

Aber wahrscheinlicher ist vermutlich die Serverkonfiguration oder die konkrete Fehlerlemeldung wird falsch interpretiert. Daher wäre es sinnvoll beides zu posten.

Außerdem gibts es hier im Forum Code Tags, nutze sie.
 
  • Thread Starter Thread Starter
  • #3
Hi alter_Bekannter,
mit Normalen Variablem habe ich es Probiert.
Klappt auch nicht.
Wo kann man in Xampp denn das Passwort für MySQL einstellen.
Ich hatte es mal, aber es ist verschwunden.
Gibt es denn den Sicherheitscheck nicht mehr von Xampp.
Gruß, Lukaszki
 
Wenn es ein syntax Fehler oder ein falscher Login ist, kommt ein Error. Das Problem dürfte wirklich der mysql Zugang ohne Passwort sein.
Starte im mysql Server Verzeichnis die mysql.exe über die Kommando Zeile oder nutze das normal ebenso mitgelieferte phpmyadmin um bei dir ein Passwort zu setzen und noch besser im Anschluss einen eigenen Benutzer für dein Programm zu erstellen der nur Zugriff auf die gewünschte Datenbank hat.
 
Tipp:
Immer die Original Fehlermeldungen dazu schreiben.
Code niemals als normalen Fließtext in den Beitrag packen, sondern code-tags verwenden - hier im Forum siehe ganz rechter Button oben bei den Formatierungsbuttons.

"Habe ich probiert" und "Klappt auch nicht" macht potenziell helfenden auch Null Spaß.
Du musst schon schreiben was du genau probiert hast, den betreffenden Code so wie du ihn verwendet hast ins Forum kopieren, ggf. nur den Code-Schnipsel. Und natürlich wie immer die Original Fehlermeldung. Kaum jemand hat Bock einem zu helfen, dem man erst Infos aus der Nase ziehen muss.
 
  • Thread Starter Thread Starter
  • #6
Hi,
sory, ich bin neu in diesem Forum.
Dazu bin ich blind. Voll blind, wenn man es genau nehmen will.
Die Programmierer haben es wirklich nicht leicht gemacht.

Das sind die Fehlermeldungen, die herauskommen:
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\Datenbank.php on line 8

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\Datenbank.php on line 11

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\Datenbank.php on line 25

So Was habe ich geändert:
(Ich weiß nicht, wie man hier im Antwortfeld Code einfügen kann):
<?php
$host = "localhost";
$benutzer = "root";
$passwort = ""; // Gebe ich ich nicht ein, weil niemand es wissen muss.
// Sonst ist alles gleich gelieben.
?>

Frage: Was mache ich falsch?
Gruß, Lukaszki

--- [2019-01-19 20:10 CET] Automatisch zusammengeführter Beitrag ---

Hi,
sory, hab den
-Code Einfügen Schalter zu spät gesehen.
Gruß, Lukaszki
 
Hi!

1) Root Passwort setzen:



2) Variablen die mit [kw]$varname[/kw] referenziert sind, auch so verwenden, also [kw]$user[/kw], [kw]$host[/kw] und so weiter, nicht nur [kw]user[/kw] - das Dollarzeichen referenziert Variablen.

[kw]define[/kw] erstellt Konstanten, was ja okay wäre in deinem alten Code, siehe auch:

Daher auch die Fehler (mit den nicht $ Variablen) in der Zeile 11 und 25... die angezeigt werden. Das "$" fehlt.

Aber erst mal ein Root Passwort setzen und dann, geht auch der Login. Und dann auch wenn du schon dabei gewesen bist, leg einen User für die Datenbank an, wie drfuture hier geschrieben hat.

Dann sollte das klappen. ;)
 
Zuletzt bearbeitet:
[src=php]$db_erg = mysqli_query(($db_link . $sql) || die (mysqli_error(mysqli_connect(HOST, BENUTZER, PASSWORT))));[/src]
Die Zeile enthält gleich mehrere Fehler. Punkt statt Komma, falsche Klammersetzung / Logik-Fehler, und den mysqli_connect kannst du sparen.

Besser wäre es so:
[src=php]$db_erg = mysqli_query($db_link, $sql) || die mysqli_error($db_link);[/src]

Und ich würde eher den objektorientierten Stil verwenden.

Damit du gar nicht in Versuchung kommst SQL-Injections einzubauen, verwende von Anfang an prepared statements für alles wo du Variablen drin hast (i.d.R. bei SELECT/UPDATE/INSERT/DELETE), so wie es ist.
 
Zuletzt bearbeitet:
Zurück
Oben