使用PHP连接mysql数据库

时间:2014-05-10 13:31:10

标签: php mysql

我已经尝试过在这里以及许多其他论坛上回答的所有解决方案但是都是徒劳的我在使用php连接到mysql数据库时仍然遇到错误

  

无法连接:拒绝访问用户&root;' @' localhost' (使用密码:否)

这是我的PHP脚本

<?php 
$database="test"; //database name 
$Uname=$_POST['username'];//this values comes from html file after submitting 
$Pwd=$_POST['pwd'];    
$con = mysql_connect("127.0.0.1","root" ,"zain");//for wamp 3rd feild is balnk 
if (!$con)    
{     
die('Could not connect: ' . mysql_error());     
} 
mysql_select_db("$database", $con); 
$query = "INSERT INTO data (UserName,Password)VALUES ('$Uname','$Pwd')"; 
mysql_query($query);
echo "<script type='text/javascript'>\n";
echo "alert('you are Succesflly registered');
\n";
echo "</script>";
mysql_close();

我的php.config文件就是这个

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'zain';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

2 个答案:

答案 0 :(得分:1)

您需要执行以下步骤:

  1. 创建新数据库&#39; test&#39;。你必须已经
  2. 创建新用户root
  3. 向新用户提供所有权限&#39;访问     对数据库执行操作,如插入,删除,连接     我相信这就是你所缺少的。
  4. 您可以从phpmyadmin执行此操作 - &gt;特权 - &gt;编辑权限。
  5. enter image description here

答案 1 :(得分:0)

首先,您应该清理用户输入。基于未转义的用户名连接到数据库可能会对安全性造成危险。

另一点是,我不认为您非常了解如何连接到数据库。

mysql_处于弃用过程中,可能会在更高版本的PHP中删除。建议您改用mysqli

如果您使用面向对象mysqli,您将连接到如下数据库:

$con = new mysqli($host, $user, $pass, $db);

在您的情况下,您将使用

$con = new mysqli("127.0.0.1", $_POST['username'], $_POST['pwd'], "test");

不要指望这对你有用,你当前状态下的问题太局部化,无法接受你之后的答案。

编辑:我注意到您的数据库名为test - 为什么您没有尝试连接到该数据库?这zain到底是什么意思?