将SQL连接到dreamweaver php项目:SQLSTATE [HY000] [2002]连接被拒绝

时间:2017-10-28 07:25:18

标签: php html mysql dreamweaver

我是PHP / SQL的新手,我正在尝试在基于Adobe Dreamweaver(DW)的项目中实现它。

从我迄今为止的工作开始:似乎DW不是集成PHP / SQL功能的理想平台,因为它们不会使文档保持最新状态seem to be phasing out PHP functionality

但是,我坚持不懈,因为有很多CSS / Html支持函数在DW中很有用。我现在的挑战是确保我仍然可以充分地集成PHP,以便我可以创建更多动态网站。在这种情况下,我需要将数据库信息提取到html以显示礼品注册表的状态。

我一直关注this great resource如何设置我的第一个PHP CRUD。我尝试调整他们的示例以匹配我自己的数据库凭据,并遇到了一个我无法解决的错误。

理论上,PHP代码片段在我的PHP测试环境中连接到mySQL数据库' registry_list_baby' (我使用默认的MAMP设置,其中localhost在港口8889)。

但是,网站上返回的数据是" SQLSTATE [HY000] [2002]连接被拒绝"

关于接下来要尝试的事情的任何指示?

<?php
class Database
{
    private static $dbName = 'registry_list_baby' ;
    private static $dbHost = 'localhost:8889' ;
    private static $dbUsername = 'private';
    private static $dbUserPassword = 'private';

    private static $cont  = null;

    public function __construct() {
        die('Init function is not allowed');
    }

    public static function connect()
    {
       // One connection through whole application
       if ( null == self::$cont )
       {     
        try
        {
          self::$cont =  new PDO( "mysql:host=".self::$dbHost.";"."dbname=".self::$dbName, self::$dbUsername, self::$dbUserPassword); 
        }
        catch(PDOException $e)
        {
          die($e->getMessage()); 
        }
       }
       return self::$cont;
    }

    public static function disconnect()
    {
        self::$cont = null;
    }
}
?>

相关的HTML SNIPPET

<!-- Form fields -->
<div class="container">
  <div class="row">
    <h3>PHP CRUD Grid</h3>
  </div>
  <div class="row">
    <table class="table table-striped table-bordered">
      <thead>
        <tr>
          <th>Taken "Claim this gift" </th>
          <th>Gifter "This gift has been claimed by XYZ"</th>
        </tr>
      </thead>
      <tbody>
<?php
   include 'database.php';
   $pdo = Database::connect();
   $sql = 'SELECT * FROM registry ORDER BY id DESC';
   foreach ($pdo->query($sql) as $row) {
            echo '<tr>';
            echo '<td>'. $row['taken'] . '</td>';
            echo '<td>'. $row['gifter'] . '</td>';
            echo '</tr>';
   }
   Database::disconnect();
  ?>
      </tbody>
    </table>
  </div>
</div>
<!-- /container -->

1 个答案:

答案 0 :(得分:0)

SQLSTATE[HY000] [2002]拒绝连接错误意味着:

  • 您没有权限或权限来访问该用户的数据库,
  • 您的数据库参数不正确或
  • 无法访问您拥有数据库的服务器;它可能是离线的。

尝试检查dbUsername用户权限。

并检查你的Mysql正在监听什么端口。