请检查mysql_connect语句的机器地址、用户名、密码是否正确,数据库的服务是否正常启动,数据库服务器是否防火墙限制了。
创新互联-专业网站定制、快速模板网站建设、高性价比达日网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式达日网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖达日地区。费用合理售后完善,10多年实体公司更值得信赖。
1、检查环境正常
使用mysql -u root -p 可以进入MySQL操作界面
直接使用/usr/local/php5/bin/php /web/test.php执行可以连上数据库
2、打开hosts加入
复制代码代码如下:127.0.0.1 qttc
使用qttc当主机连接也正常,唯独就不认localhost。
3、localhost连接方式不同导致
为了了解PHP连接数据库时,主机填写localhost与其它的区别阅读了大量资料,最后得知:
当主机填写为localhost时mysql会采用 unix domain socket连接
当主机填写为127.0.0.1时mysql会采用tcp方式连接
这是linux套接字网络的特性,win平台不会有这个问题
4、解决方法
在my.cnf的[mysql]区段里添加
复制代码代码如下:
protocol=tcp
保存重启MySQL,问题解决!
?php
$conn=@mysql_connect("localhost","root","")or die("数据库链接失败");
mysql_select_db(wk,$conn);
mysql_query("set names utf8");
$name=$_POST["zhanghao"];
$pwd=$_REQUEST["mima"];
$sql="select * from zhuce where username = '$name' and password = '$pwd'";
echo $sql;
$result=mysql_query($sql,$conn);
$row=mysql_fetch_array($result);
if(!$row){
echo "scriptwindow.alert('用户不存在或者密码错误');/script";
}
else{
echo "scriptwindow.alert('$row[username],欢迎您');/script";
}
?
判断的不是很清楚,我也是新手,呵呵