Warnung: mysqli_connect (): (HY000/1045): Zugriff für Benutzer 'Benutzername' @ 'localhost' (mit Kennwort: YES) in C:\Users\xampp\htdocs\PHP_Login_Script\config.php in Zeile 6 abgelehnt
Warnung: mysqli_real_escape_string () erwartet, dass Parameter 1 mysqli ist, boolean in C:\Users\xampp\htdocs\PHP_Login_Script\login.php in Zeile 10
Warnung: mysqli_real_escape_string () erwartet, dass Parameter 1 mysqli ist, boolean in C:\Users\xampp\htdocs\PHP_Login_Script\login.php in Zeile 11
Warnung: mysqli_query () erwartet, dass Parameter 1 mysqli ist, boolean in C:\Users\xampp\htdocs\PHP_Login_Script\login.php in Zeile 15
Warnung: mysqli_fetch_array () erwartet, dass Parameter 1 mysqli_result ist, wobei null in C:\Users\xampp\htdocs\PHP_Login_Script\login.php in Zeile 16 angegeben ist
Warnung: mysqli_num_rows () erwartet, dass Parameter 1 mysqli_result ist, wobei null in C:\Users\xampp\htdocs\PHP_Login_Script\login.php in Zeile 19 angegeben wird
Ich bekomme diesen Fehler oben auf localhost, auch wenn meine Konfigurationsdatei so ist:
<?php
define("DB_Host", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
?>
Früher hat das funktioniert, jetzt aber nicht mehr. Gibt es ein Problem mit diesem Code oder funktioniert es jetzt nicht? This ist das Tutorial, an dem ich gerade arbeite.
Diese Kombination aus Benutzername, Host und Kennwort darf keine Verbindung zum Server herstellen. Stellen Sie sicher, dass die Berechtigungstabellen auf dem Server (ggf. Erneutes Laden von Berechtigungen) vorhanden sind und dass Sie eine Verbindung zum richtigen Server herstellen.
Wenn Sie Wamp-Update ausführen
define("DB_Host", "localhost");
An die IP-Adresse Ihres Computers (meine ist 192.168.0.25);
define("DB_Host", "192.168.0.25");
Sie können es im Fenster finden, indem Sie ipconfig in Ihre Konsole oder ifconfig unter mac/linux eingeben
mysqli_connect (DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
verwenden Sie DB_Host anstelle von DB_SERVER
Sehen Sie sich Ihren Code an Sie haben DB_Host definiert und DB_SERVER abgefragt. DB_USER und DB_USERNAME Verwenden Sie diesen Code
define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$connect = mysqli_connect(DB_SERVER , DB_USER, DB_PASSWORD, DB_DATABASE);
Stellen Sie sicher, dass Ihr Kennwort keine Sonderzeichen enthält, und behalten Sie ein einfaches Kennwort (z. B. 12345). Das ist das Merkwürdigste, was ich je gesehen habe. Ich habe ungefähr 2 Stunden gebraucht, um das herauszufinden.
Hinweis: 12345 ist Ihr normales Passwort
GRANT ALL PRIVILEGES ON dbname.* TO 'yourusername'@'%' IDENTIFIED BY '12345';
sie definieren als DB_USER, verwenden aber als DB_USERNAME. Auch php sagt, dass Benutzername @ localhost nicht erreichbar ist. Nicht root @ localhost.
Ändern Sie Ihren Definitions- oder Verbindungsparameter.
Das gleiche Problem hatte ich mit XAMPP 7 und opencart Arabic 3. Zu tun. Ersetzen von localhost durch den tatsächlichen Rechnernamen löscht das Problem.
Dies ist dein Code:
<?php
define("DB_Host", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
?>
Der einzige Fehler, der diese Nachricht verursacht, ist folgender:
DB_USER
, rufen aber danach als DB_USERNAME
an.Bitte seien Sie beim nächsten Mal vorsichtiger.
Es ist besser für einen Einsteiger-Programmierer, der mit der Codierung in PHP
beginnen möchte, um das nicht zu nutzen, was er oder sie nicht gut kennt.
NUR als Rat, versuchen Sie bitte, (zum ersten Mal) allgemeineren Code zu verwenden.
beispiel: Verwenden Sie nicht die Anweisung define()
. Versuchen Sie, die Variablendeklaration als $db_user = 'root';
zu verwenden.
Hab eine schöne Erfahrung :)
In meinem Fall war das Problem:
define ('DB_PASSWORD', "MyPassw0rd!'");
(die ungerade Single 'vor dem Double ")
Das gleiche Problem trat bei mir mit AWS RDS MySQL auf. Gerade jetzt beantwortete ähnliche Frage hier. Sah verschiedene Quellen aus, aber ab diesem Thread fehlte fast alles an Antwort. Obwohl dieser Thread mir geholfen hat, sollte Tweak im Hinterkopf behalten, Hostnamen auf dem Server zu aktualisieren. Greifen Sie auf Ihre SSH zu und folgen Sie den Schritten:
cd /etc/
Sudo nano hosts
Jetzt fügen Sie hier Ihre Hostnamen an: Zum Beispiel:
127.0.0.1 localhost
127.0.0.1 subdomain.domain.com [if cname redirected to endpoints]
127.0.0.1 xxxxxxxx.xxxx.xxxxx.rds.amazonaws.com [Endpoints]
und jetzt config/database.php
wie folgt konfigurieren:
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => '35.150.12.345',
'username' => 'user-name-here',
'password' => 'password-here',
'database' => 'database-name-here',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
dabei ist 35.150.12.345
Ihre IPv4 Public IP, die sich unter ec2-dashboard > Network Interfaces > Description : RDSNetworkInterface >> IPv4 Public
IP ('35 .150.12.345 ') befindet.
Hinweis: Bitte beachten Sie, dass nur IPV4 mit der Option 'Hostname' funktioniert. Hostname, Cname, Domänen geben Datenbankverbindungsfehler aus.
Beim Versuch, eine Verbindung mit einem anderen Benutzer als root
herzustellen, hatte ich den Fehler, der den Zugriff einschränken sollte.
In mysql habe ich den Benutzer MofX
mit Host %
eingerichtet und es wurde keine Verbindung hergestellt.
Wenn ich den Host des Benutzers in 127.0.0.1
geändert habe, wie in 'MofX'@'127.0.0.1', hat es funktioniert.
Die Frage wurde bereits oben beantwortet. Nur, damit Sie sich bei einer Verbindung mit allen vier Saiten gleichzeitig wohl fühlen
<?php
define("DB_Host", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
// you could test connection eventually using a if and else conditional statement,
// feel free to take out the code below once you see Connected!
if ($db) {
echo "Connected!";
} else {
echo "Connection Failed";
}
?>
Es gibt einen Tippfehler in defi- nierten Argumenten. Ändern Sie DB_Host in DB_SERVER und DB_USER in DB_USERNAME:
<?php
define("DB_SERVER", "localhost");
define("DB_USERNAME", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
?>
Ich habe hier ein paar Dinge behoben, der hier definierte "DB_Host" sollte dort unten auch DB_Host sein, und der "DB_USER" heißt dort unten auch "DB_USER". Überprüfen Sie den Code immer auf Gleichheit.
<?php
define("DB_Host", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "");
$db = mysqli_connect(DB_Host, DB_USER, DB_PASSWORD, DB_DATABASE);
?>