我的网站上有两个数据库的单个用户。第一个和更早的数据库DB_A是真实数据库,而较新的DB_B仅用于测试目的。
我的用户,让我们称之为USER_X,它们都具有所有权限(除了' DROP')并且我确保我的用户名,密码和数据库名称都是全部写的正确地在PHP中。
连接到DB_A并投掷时
if(!mysql_select_db($dbname)) echo mysql_error();
我什么都没得到,换句话说,一切正常。
当连接到DB_B并扔掉同样的东西时,我明白了
Access denied for user 'USER_X'@'localhost' to database 'DB_B'
。
再一次,我确定我的凭据是正确的,并且我拥有DB_B数据库的所有权限。
任何人都知道这里发生了什么?
谢谢!
编辑:
PHP v.5.2.17
MySQL v.5.0.96
答案 0 :(得分:1)
使用MySQLi
- http://www.php.net/manual/en/book.mysqli.php - MySQL
已被弃用。
查看实际代码非常有用!
无论如何,以下内容来自http://www.php.net/manual/en/mysqli.connect-error.php
我建议您尝试使用它们,如果仍然出现错误,请检查用户名,密码和数据库拼写是否正常。
面向对象的风格
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');
// Works as of PHP 5.2.9 and 5.3.0.
if ($mysqli->connect_error) {
die('Connect Error: ' . $mysqli->connect_error);
}
程序风格
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');
if (!$link) {
die('Connect Error: ' . mysqli_connect_error());
}