为什么我收到这个错误?
问题描述:
我想设置一个mysql数据库来捕获来自html表单的信息,但是当我测试它时,会返回下面的错误。该文件与数据库位于同一台服务器上。我的php位于错误之下。为什么我收到这个错误?
警告:mysql_connect()[function.mysql-connect]:拒绝用户访问inmoti6_ted_seminar'@'localhost'(使用password:YES)在/home/westcl5/public_html/drjseminars.com/thankyou.php上线92 无法连接:拒绝访问用户inmoti6_ted_seminar'@“localhost”的(使用密码:YES)
if($_POST)
{
$con = mysql_connect("localhost","inmoti6_ted_seminar","Polarbear5");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("inmoti6_westcl5_ted_sem", $con);
$users_firstName = $_POST['first_name'];
$users_lastName = $_POST['last_name'];
$users_street = $_POST['street'];
$users_street2 = $_POST['street2'];
$users_city = $_POST['city'];
$users_state = $_POST['state'];
$users_zip = $_POST['zip'];
$users_country = $_POST['country'];
$users_email = $_POST['email'];
$users_telephone = $_POST['telephone'];
$users_practice = $_POST['practice'];
$users_firstName = mysql_real_escape_string($users_firstName);
$users_lastName = mysql_real_escape_string($users_lastName);
$users_street = mysql_real_escape_string($users_street);
$users_street2 = mysql_real_escape_string($users_street2);
$users_city = mysql_real_escape_string($users_city);
$users_state = mysql_real_escape_string($users_state);
$users_zip = mysql_real_escape_string($users_zip);
$users_country = mysql_real_escape_string($users_country);
$users_email = mysql_real_escape_string($users_email);
$users_telephone = mysql_real_escape_string($users_telephone);
$users_practice = mysql_real_escape_string($users_practice);
$query = "
INSERT INTO `westcl5_ted_sem`.`ted_seminar` (`First Name`, `Last Name`, `E-mail`, `Phone #`, `Street Address`, `Street Address 2`, `City`, `State`, `Zip Code`, `Country`, `Practice`) VALUES ('$users_firstName', '$users_lastName', '$users_email', '$users_telephone', '$users_street', '$users_street2', '$users_city', '$users_state', '$users_zip', '$users_country', '$users_practice');";
mysql_query($query);
mysql_close($con);
}
答
问题是与您的密码这是不匹配的。尝试defulat $ con = mysql_connect(“localhost”,'root','');而不是 $ con = mysql_connect(“localhost”,“inmoti6_ted_seminar”,“Polarbear5”);
虽然在XAMPP上工作,但我也收到了这个错误,但通过使用上面提到的那条线来解决我的问题。
答
您将需要授予inmoti6_ted_seminar
用户权限。以root身份登录到mysql服务器并执行以下SQL,您当然可以设置他们拥有的权限,但我认为您只需要INSERT
。
CREATE USER 'inmoti6_ted_seminar'@'localhost' IDENTIFIED BY 'Polarbear5';
GRANT INSERT ON inmoti6_westcl5_ted_sem.* TO 'inmoti6_ted_seminar'@'localhost';
看来你的数据库用户没有足够的权限,给你的用户所需的权限 – Adeel 2014-12-05 06:20:17
而且还注意到,'mysql_ *'功能已被弃用。停止使用它们,因为它不再安全。看看'PDO'或'MySQLi' :) – Darren 2014-12-05 06:23:12