2016-02-25 82 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

和平