无法连接到数据库,提示:Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'

我是初学者,想做一个注册页面,用的xmapp搭建的环境,网页代码如下:这是注册的html表格:--------------------------------------... 我是初学者,想做一个注册页面,用的xmapp搭建的环境,网页代码如下:

这是注册的html表格:------------------------------------------------------------------
<html>
<form action='test-write.php' method='POST'>
username:<input type='text' name='username'><br>
password:<input type='text' name='password'><br>
<input type='submit' value='sign up'>
</form>

</html>

这个是php页面:------------------------------------------------------------------
<?php

$username = $_POST['username'];
$password = $_POST['password'];

echo "$username<br />$password<br />";

$dbc = mysqli_connect('127.0.0.1', 'root','login')
or die('Error connecting to MySQL server.');

$query = "INSERT INTO userinfo (username, password)" .
"VALUES ('username',password')";

$result = mysqli_query($dbc, $query)
or die('Error querying database.');

mysqli_close($dbc);

?>

这个案例是按照Head.First.PHP.and.MySQL.这本书上面写的,但是每次运行后,echo出用户名和密码正常,但是连接不到数据库,所以没法写入新用户的用户名和密码,这个是数据库的截图:
里面有两个我手动填进去的

请问怎么才能让php正确连接到数据库?
提示:Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in D:\XAMPP\htdocs\sign-in-up\simple\test-write.php on line 8
Error connecting to MySQL server.
展开
 我来答
百度网友85ac4e6
2018-03-30 · TA获得超过1.3万个赞
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:9822
展开全部

原因有二:

1.登录账号、密码、服务器名称、数据库名称登录错误导致不能连接,这个比较常见,仔细检查好所填信息是否正确,填写正确一般就可以解决。

2.如果没能正确安装SQL服务器,也会导致数据库连接不上;安装好数据库后,如果SQL服务管理器没有启动,则要去服务那里开启。

解决方法:

  1. 当正在使用的软件出现数据库不能连接时,一般就是服务器名出现问题,更改服务器名称

    一般可以解决问题。数据库如果是安装在本机,服务器名可以用“.”或“(local)”来代替 ;如果是安装在局域网的其它计算机上,可以用IP地址作为服务器名。

  2. 如果是SQL数据库未能能成功安装,再次重新安装时,可能会无法安装,提示是存在一个未     完成的安装挂起。解决就方法是:打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到并删除PendingFileRenameOperations项目即可。

瑚一刀
2017-08-15 · TA获得超过2113个赞
知道小有建树答主
回答量:5171
采纳率:48%
帮助的人:566万
展开全部
1,密码是否正确。
2.mysql中的user表中是否增加root用户的数据允许远程客户端连接数据库。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落叶l无情
2014-10-01 · TA获得超过1417个赞
知道大有可为答主
回答量:1372
采纳率:0%
帮助的人:1398万
展开全部
提示的是用户root被拒绝访问,是不是设置密码了
$dbc = mysqli_connect('127.0.0.1', 'root','root密码','login') //root密码 换成实际的密码。
追问

这里密码不是空的么?在网页上登录phpmyadmin也不需要密码,是不是我后面写的表格名称'login"他错认成密码了?,记得书里说这四个项是有顺序的,我把那里放了一个空引号,改成$dbc = mysqli_connect('127.0.0.1', 'root', ' ' ,'login')后,错误提示变成了Error querying database.这是咋回事?


追答
是的,这里"VALUES ('username',password')"; 少了一个' ,应为"VALUES ('username','password')";
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
耗仔h
2019-01-22
知道答主
回答量:3
采纳率:0%
帮助的人:1536
展开全部
因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,我在网上搜到的解决方法是
delete from mysql.user where user=''; #删除匿名用户
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
d_leo
2017-12-25 · TA获得超过245个赞
知道小有建树答主
回答量:297
采纳率:74%
帮助的人:123万
展开全部
mysql root 不允许连接啊,
$dbc = mysqli_connect('127.0.0.1', 'root','login')
root的的密码是 login ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式