0
  • 我正在使用 Wamp,
    • 我自己的电脑作为本地主机
    • 端口:80
    • 我像往常一样将php脚本文件保存在默认位置 C:\wamp\www\webservice
    • 我已经为 php 访问创建了一个配置文件,我将其称为 config.inc.php
    • 我已经使用凭据创建了 mysql 数据库username=dev, password=root, databasename=webservice

它的代码在下面::

<?php 

    // These variables define the connection information for your MySQL database 
    $username = "dev"; 
    $password = "root"; 
    $host = "localhost"; 
    $dbname = "webservice"; 


    $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'); 

    try 
    { 

        $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); 
    } 
    catch(PDOException $ex) 
    { 

        die("Failed to connect to the database: " . $ex->getMessage()); 
    } 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
    $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);    
    if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) 
    { 
        function undo_magic_quotes_gpc(&$array) 
        { 
            foreach($array as &$value) 
            { 
                if(is_array($value)) 
                { 
                    undo_magic_quotes_gpc($value); 
                } 
                else 
                { 
                    $value = stripslashes($value); 
                } 
            } 
        }      
        undo_magic_quotes_gpc($_POST); 
        undo_magic_quotes_gpc($_GET); 
        undo_magic_quotes_gpc($_COOKIE); 
    } 
    header('Content-Type: text/html; charset=utf-8'); 
    session_start(); 
?>

然后我使用名为的脚本文件创建了一个简单的功能测试register.php


它的代码如下:


<?php

require ("config.inc.php");

?>

<h1>Register</h1>
<form action="register.php" method="post">
    Username:<br/>
    <input type="text" name="username" placeholder="user name"><br/>
    Password:<br/>
    <input type="password" name="username" placeholder="user name"><br/>
    <input type="submit" value="Register user"/>
</form>

当我从浏览器运行时http://localhost/webservice/register.php


我在浏览器中收到此错误,显示为

无法连接到数据库:SQLSTATE [28000] [1045] 用户'dev'@'localhost'的访问被拒绝(使用密码:YES)


请就如何克服这个问题提出任何建议

4

1 回答 1

0

出于安全原因,请不要使用 root。可能用户配置不好。也看看这个文档http://dev.mysql.com/doc/refman/5.1/en/create-user.html

此外,我在您的代码中看到 session_start() 在脚本末尾调用,如果之前发生这样的错误,PHP 将打印错误而不启动会话,因此您应该在脚本开头使用它。

希望能帮助到你。

于 2013-07-16T07:48:07.080 回答