2012-11-16 11 views
5

Ben var sorunu açıklamaya çalışıyorum !!!PHP PDO PGPOOL PGSQL - SQLSTATE [HY000]: Genel hata: 7 sunucuya bağlantı yok

pgpool-II aracılığıyla PostgreSQL'e bağlanmak için PDO uzantısını kullanıyorum. Bu Apache içinde çalışıyor, ancak PHP CLI dan (aynı makinede) Bu PDO hata alırsınız:

sqlstate [HY000]: Genel hata: 7 Zaten aramış

sunucuya bağlantı Google'da ve burada, ama hiç kimse bunu yapmaya çalışmamış gibi görünüyor. Herhangi bir fikri olan var mı?

DÜZENLEME:

Bu benim bağlantı kurmak için kullanın koddur:

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 kendi bazı ek işlevler uygulayan sınıf yanı sıra veritabanı bağlantısı yaratmaktır:

class ManageDb { 
     var $db; 

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

.... 
+0

Eh, sunucuya bir bağlantı yok söylüyor. Nasıl bağlanıyorsunuz ve nasıl çalıştığını kontrol edersiniz, paylaşılacak iyi bilgiler olur. –

+0

pgpoll kullanırken, bağlantıyı conf dosyasında ayarlamanız gerekir. Pgadmin3 kullanarak postgresql sunucunuza erişmeyi denediniz mi? Eğer başarıya ulaşırsa, o zaman problemin sizin konfeksiyonunuzda olduğunu düşünüyorum. – Ahmad

cevap

3

Bunu deneyin


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); 
    } 
} 
?> 
İlgili konular