2016-02-25 4 views
9

Wenn ich die PHP-Code haben,PHP & MySQL-Benutzernamen mit Unterstreichungs

$db_user = "john_doe"; 
$db_name = "john_doedata"; 

$conn = new mysqli('example.com', $db_user, 'johndoespassword', $db_name); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

Wenn ich versuche, eine Abfrage zu tun, bekomme ich

Verbindung fehlgeschlagen: Zugriff verweigert für Benutzer 'john' @ 'example.com' (mit Passwort: NEIN)

Das Problem liegt auf der Hand. PHP übergibt nur den Teil des Benutzernamens vor dem Unterstrich.

Wie kann ich das beheben/umgehen?

Ich habe keine Kontrolle über den Benutzernamen, also "bekomme einen neuen Benutzernamen" wird nicht funktionieren.

Die using password : NO bedeutet, dass ich das falsche Passwort benutze, aber das ist wirklich das falsche Passwort für den Benutzer john und ist das korrekte Passwort für den Benutzer john_doe.

+0

hast du versucht, Unterstrich wie John \\ _ doe zu entkommen. Ich erinnere mich, es ist Unterstreichung Problem über die alten MySQL-Versionen b ut nicht ganz sicher über die Lösung. – smozgur

+0

Können Sie versuchen zu sehen, wenn Sie das gleiche Problem mit PDO bekommen? Ich hatte '_' in Benutzername und es war in der Lage, eine Verbindung zur DB ohne irgendein Problem herzustellen. Ich benutze jedoch meistens PDO. – Maximus2012

+0

Sie können stattdessen versuchen, einfache Anführungszeichen '' 'zu verwenden. Nicht sicher, dass es tatsächlich einen Unterschied machen würde, aber es ist das erste, was ich selbst versuchen würde. – phaberest

Antwort

0

Es stellt sich heraus, es war, wie ich meine eingebundenen Dateien zugegriffen hat, die Variablen enthalten sind.. Ich habe Variablen gesetzt, die unterschiedliche Werte in separaten eingeschlossenen Dateien hatten.

-2

Versuchen Sie folgendes:

$db_user = "john_doe"; 
$db_name = "john_doedata"; 
$db_password = "johndoespassword"; 

$conn = new mysqli('example.com', $db_user, $db_password , $db_name); 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 

Oder einfach "verwenden und nicht‘. D

Friedens