2016-02-25 111 views
9

如果我有一個PHP代碼,PHP和MySQL用戶名與下劃線

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

當我嘗試做一個查詢,我得到

連接失敗:拒絕訪問用戶「約翰」 @'example.com'(使用密碼:否)

問題很明顯。 PHP僅在下劃線之前傳遞用戶名部分。

我該如何解決/解決這個問題?

我無法控制用戶名,因此「獲取新用戶名」不起作用。

using password : NO暗示我使用了錯誤的密碼,但實際上這是用戶john的錯誤密碼,並且是用戶john_doe的正確密碼。

+0

你是否嘗試像下面這樣跳過下劃線john \\ _ doe。我記得它是關於舊的mysql版本b的下劃線問題並不完全確定解決方案。 – smozgur

+0

您是否可以嘗試查看您是否也遇到了與PDO相同的問題?我在用戶名中有'_',並且它能夠連接到數據庫而沒有任何問題。儘管我主要使用PDO。 – Maximus2012

+0

您可以嘗試使用單引號'''代替。不確定它實際上會有所作爲,但這是我第一次嘗試自己。 – phaberest

回答

0

事實證明,這是我是如何訪問一個包含變量我的包含文件。我設置的變量在不同的包含文件中有不同的值。

-2

試試這個:

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

或者簡單地使用「,而不是」:d

和平