无法使用PHP“访问被拒绝用户''''localhost'连接MYSQL(使用密码:NO)”

时间:2013-10-30 09:02:28

标签: php mysql

我正在尝试连接php和mysql。

以下是代码:

<?php

$response=array();
require_once 'C:\wamp\www\android_connect\db_connect.php';
$db=new DB_CONNECT();


$result=mysql_query("select * from product")or die(mysql_error());

if(mysql_num_rows($result)>0)
{
    $response["products"]=array();

    while($row=mysql_fetch_array($result))
    {
        $product=array();
        $product["pid"]=$row["pid"];
        $product["name"]=$row["name"];
        $product["price"]=$row["price"];
        $product["description"]=$row["description"];

        array_push($response["products"],$product);
    }
    $response["success"]=1;
}
else
{
    $response["success"]=0;
    $response["message"]="No products found";
}
echo json_encode($response);

?>

当我尝试使用计算机上安装的WAMP打开文件时,会抛出以下错误:

Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in C:\wamp\www\android_connect\get_all_products.php on line 8

Warning: mysql_query(): A link to the server could not be established in C:\wamp\www\android_connect\get_all_products.php on line 8

在我的情况下,第8行是:

$result=mysql_query("select * from product")or die(mysql_error());

db_connect代码如下:

<?php

class DB_CONNECT
{

    function _construct()
    {
        $this->connect();
    }

    function _destruct()
    {
        $this->close();
    }

    function connect()
    {
        $con=mysql_connect('localhost','root','kamani') or die (mysql_error());
        $db=mysql_select_db('mobileinventory') or die (mysql_error());
        return $con;
    }

    function close()
    {
        mysql_close();
    }
}

?>

要完成此处的错误,请上传其快照。 enter image description here

无法解决错误

3 个答案:

答案 0 :(得分:7)

您必须为魔术方法添加两个下划线:

function __construct() {
  $this->connect();
}

在其他地方构造函数,因此永远不会调用connect方法。与__destruct()方法相同。

你不应该使用PHP的mysql扩展,因为它已被弃用并在下一个PHP版本中被删除。请改用PDO或mysqli。

答案 1 :(得分:1)

你必须这样做

$db=new DB_CONNECT();
$db->connect();

您似乎没有连接到数据库,或修复@TiMESPLiNTER建议

答案 2 :(得分:1)

在数据库文件中,您必须将构造函数(和析构函数)更改为

 function __construct()
 {
    $this->connect();
}

function __destruct()
{
    $this->close();
}