2016-02-25 20 views
9

Jeśli mam kod PHP,PHP & MySQL Nazwa z podkreślenia

$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); 
} 

Kiedy próbuję wykonać kwerendę, mam

Connection failed: Access denied for user 'John' @ 'example.com' (używając hasła: NIE)

Problem jest oczywisty. PHP przekazuje tylko część nazwy użytkownika przed podkreśleniem.

Jak mogę to naprawić/obejść?

Nie mam kontroli nad nazwą użytkownika, więc "pobierz nową nazwę użytkownika" nie będzie działać.

Oznacza, że ​​używam złego hasła, ale tak naprawdę to jest nieprawidłowe hasło dla użytkownika john i jest poprawne hasło dla użytkownika john_doe.

+0

zrobił podczas próby ucieczki podkreślenia jak Jan \\ _ łania. pamiętam to podkreślenia problemu o starych wersjach MySQL b nie jestem całkowicie pewien rozwiązania. – smozgur

+0

Czy możesz spróbować sprawdzić, czy masz ten sam problem z PDO? Miałem '_' w nazwie użytkownika i było w stanie połączyć się z DB bez żadnego problemu. Najczęściej jednak używam PDO. – Maximus2012

+0

Możesz spróbować użyć pojedynczego cudzysłowu '' 'zamiast tego. Nie jestem pewien, czy to naprawdę coś zmieni, ale to pierwsza rzecz, którą sam wypróbuję. – phaberest

Odpowiedz

0

Okazuje się, że to było jak miałem dostępu do moich dołączone pliki, które zawierały zmienne.. byłem ustawienie zmiennych, które miały różne wartości zawarte w oddzielnych plikach.

-2

Spróbuj tego:

$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); 
} 

Albo po prostu użyć ", a nie”. D

Peace