2012-07-08 107 views
3

我在本地服务器(WAMP)的网站上工作,PHP和数据库工作正常。但是当我上传网站到托管服务器。并试图登录,数据库连接将无法正常工作。当我使用DB功能如mysqli::mysqli()时,它给了我警告。PHP MYSQL无法连接(HY000/2002)

整个错误如下:

Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2002): No connection could be made 
because the target machine actively refused it. 
in D:\Hosting\XXXXX\html\raw\database\connect.php on line 9 

继续

Warning: mysqli::mysqli() [mysqli.mysqli]: [2002] No connection could be made because 
the target machine actively (trying to connect via tcp://localhost:3306) in  
D:\Hosting\XXXXX\html\raw\database\connect.php on line 9 


Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in  
D:\Hosting\XXXXX\html\raw\functions\users.php on line 10 

的connect.php PHP代码为:

<?php 

    require_once 'Internal/Var.php'; 
    //mysql_connect(D_SERVER, D_USER, D_PASSWORD); 
    //mysql_select_db(D_NAME); 

    function create_connection() 
    { 
     $conn = new mysqli(D_SERVER, D_USER, D_PASSWORD, D_NAME); 
     return $conn; 
    } 

    function close_connection(mysqli $con) 
    { 
     $con->close(); 
    } 

?> 
+2

你为什么要用程序混乱取代完全有效的OOP接口? – 2012-07-08 02:02:16

+0

我是PHP新手。我之前正在研究java。你能给个例子吗。 – 2012-07-08 02:09:27

+1

问题是tcp/ip连接。 – 2012-07-08 02:20:03

回答

1

你需要指定usernamepassword为您的MySQLi连接。

require_once 'Internal/Var.php'; 
// Remove the two procedural connection lines here 

function create_connection() 
{ 
    // Make sure D_SERVER, D_USER, D_PASSWORD, D_NAME have the correct values 
    // These values are probably created in Internal/Var.php 
    $conn = new mysqli(D_SERVER, D_USER, D_PASSWORD, D_NAME); 

    return $conn; 
} 

function close_connection(mysqli $con) 
{ 
    $con->close(); 
} 
+0

错误是abt的数据库连接。我仍然geting错误abt数据库函数.. – 2012-07-08 02:08:31

+0

当你设置像D_SERVER等常量后,你看到了什么错误?数据库连接是我试图用我的答案解决的问题。 – 2012-07-08 02:11:01