我使用的是PHP amd mysql(XAMPP)。我试图用PDO将我的php文件与数据库连接起来。但它显示以下错误。 (mysql_query():拒绝访问用户&root;' @' localhost'(使用密码:否))。我不知道的问题是什么。我第一次使用PDO。请有人告诉我问题是什么,解决方案是什么。这是我的代码。
$dsn = 'mysql:dbname=abc;host=localhost';
$dbuser = 'user';
$dbpass = 'pass';
$params = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
$pdo = new PDO($dsn, $dbuser, $dbpass, $params);
答案 0 :(得分:3)
$dsn = 'mysql:host=localhost;dbname=test';
$dbuser = 'user';
$dbpass = 'pass';
$params = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
$pdo = new PDO($dsn, $dbuser, $dbpass, $params);
你在这里做错了
MySQL的:DBNAME = ABC;主机=本地主机
^^^^^^^^^^
答案 1 :(得分:1)
嗯,你不能在PDO中使用 mysql_query()。您可以使用 $pdo->query() ,或者更好的$pdo->prepare()使用预先准备好的声明。
mysql_query()来自已弃用的mysql API。
$pdo = new PDO($dsn, $dbuser, $dbpass, $params);
$stmt = $pdo->prepare('SELECT * FROM `table` WHERE id = ?');
$stmt->execute( [ $_GET['id'] ] );
$row = $stmt->fetch();