【问题标题】:Access denied for user 'user'@'%' to database 'db'用户 'user'@'%' 拒绝访问数据库 'db'
【发布时间】:2016-03-08 08:04:41
【问题描述】:

这是什么错误? mysql 用户、密码和 Db 似乎完全正确, 正在使用 freehosting.com 我现在应该做什么?? :(

error_reporting(0);
session_start();
$mysqli = mysqli_connect("127.0.0.1", "user", "password", "db");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

/* change db to world db */
$mysqli->select_db("world");

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();

用户 'user'@'%' 拒绝访问数据库 'db'

【问题讨论】:

  • 前后有空格吗? " password "
  • @Mohsen Shakibafa,:( 不,先生,刚刚编辑,没有空间
  • 你能检查用户user的权限吗?
  • 所以你的用户名是user,密码是password?你的数据库名为db?
  • @Mohsen Shakibafa:Phpmyadmin 中没有按钮权限

标签: php mysql database mysqli


【解决方案1】:

我从未使用过 mysqli。 但我使用 PDO,它也是一个连接驱动程序

此代码将您的软件连接到数据库:

$dsn = 'mysql: host=localhost; dbname=testdatabase';
$user = 'user';
$password = 'password';
try {
   $pdo = new PDO($dsn, $user, $password);
   $pdo ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
   echo 'Connection failed: ' . $e->getMessage();
}

这会从数据库中获取数据:

$userid = 1;
$sql= "SELECT * FROM users WHERE usr_id = :userid"; 
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':userid', $userid, PDO::PARAM_INT); 
$stmt->execute();
$obj = $stmt->fetchObject();
echo $obj->usr_username;

希望这会有所帮助!

【讨论】:

  • 这不是答案,他连接数据库正常,使用 PDO 无法修复错误。
猜你喜欢
  • 2014-02-22
  • 1970-01-01
  • 2012-02-08
  • 2014-06-14
  • 2021-07-11
  • 1970-01-01
  • 2012-06-20
  • 2017-05-30
  • 2014-12-21
相关资源
最近更新 更多