加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – PHP PDO PGPOOL PGSQL – SQLSTATE [HY000]:一般

发布时间:2020-12-13 18:05:26 所属栏目:百科 来源:网络整理
导读:我试着解释我的问题!!! 我使用PDO扩展通过pgpool-II连接到PostgreSQL.它在Apache中运行良好,但是从PHP CLI(在同一台机器上)我收到此PDO错误: SQLSTATE [HY000]:一般错误:7没有连接到服务器 我已经在谷歌和这里搜索了,但似乎没有人试过这样做.有谁有想法吗
我试着解释我的问题!!!

我使用PDO扩展通过pgpool-II连接到PostgreSQL.它在Apache中运行良好,但是从PHP CLI(在同一台机器上)我收到此PDO错误:

SQLSTATE [HY000]:一般错误:7没有连接到服务器

我已经在谷歌和这里搜索了,但似乎没有人试过这样做.有谁有想法吗?

编辑:

这是我用来建立连接的代码:

include 'manage_db.php';
include_once 'properties.php';
global $properties;

$dsn = 'pgsql:dbname=' . $properties['db_pgpool'] . ';host=localhost;port=' . $properties['port_pgpool'];

try{
   $mgmtDb = new ManageDb($dsn,$properties['username_pgpool'],$properties['password_pgpool']);
} catch (Exception $e) {
   echo 'PDO - Caught exception: ',$e->getMessage(),"n";
}

ManageDB是我自己的类,它实现了一些实用程序功能以及创建数据库连接:

class ManageDb {
        var $db;

        function ManageDb($dsn,$username,$password){
            $this->db = new PDO($dsn,$password);
            $this->db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        }

....
试试这个

config.database.php

<?php
class DatabaseConfig {

    const DBNAME    = 'dbname';
    const HOST      = '123.1.233.123';
    const USER      = 'mysuperuser';
    const PASSWORD  = 'mysupperparrword';
    const PORT      = 5432; 
}
?>

class.database.php

<?php

include('config.database.php');

class Database {

    protected static $instance = null;

    final private function __construct() {}
    final private function __destruct() {
        self::$instance = null;
    }

    final private function __clone() {}

    public static function getInstance() {
        if (self::$instance === null) {
            try {
                self::$instance = new PDO(
                    'pgsql:host='   . DatabaseConfig::HOST . 
                    ';port='        . DatabaseConfig::PORT . 
                    ';dbname='      . DatabaseConfig::DBNAME . 
                    ';user='        . DatabaseConfig::USER . 
                    ';password='    . DatabaseConfig::PASSWORD
                );
                self::$instance->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
                self::$instance->setAttribute(PDO::ATTR_EMULATE_PREPARES,true);
            } catch (PDOException $e) {
                die('Database connection could not be established.');
            }
        }

        return self::$instance;
    }
    public static function __callStatic($method,$args) {
        return call_user_func_array(array(self::instance(),$method),$args);
    }
}
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读