2016-07-16 2 views
0

Итак, в основном то, что я делаю, - это небольшая система, которая позволяет студентам проходить онлайн-тесты, а преподаватели могут сдавать экзамен и сообщать им об этом, когда они есть. Все было хорошо, когда мы работали в локальном хосте, но тогда один из наших запросов состоял в том, чтобы использовать PostgreSQL вместо базы данных, которая нам показалась классной. . Но теперь мы сталкиваемся с этой проблемой при входе в системуПроблема с соединением PHP + PostgreSQL (вызов функции undefined pg_connect())

База данных уже заполнена пользователей и паролей, но это больше не позволяет нам получать доступ к системе независимо от того, поставили ли мы правильный пароль/имя пользователя или фактически создали новую учетную запись

Это файл connection.php

<

?php 

class Connection { 
    private static $instance; 
    private $connection; 

    private function __construct() 
    { 
    $cadena = "host='localhost' port='5432' dbname='newdb' user = 'postgres' password = 'system'"; 
    $this->connection = pg_connect($cadena) or die ('Error'); 
    $this->query("SET TIME ZONE -4"); 
    } 



    public static function getInstance(){ 

    if (!isset(self::$instance)) 
     self::$instance = new Connection(); 

    return self::$instance; 
    } 

    public function query($aQuery){ 
    //echo "$aQuery<br>"; 
    return pg_query($this->connection, $aQuery); 
    } 

} 

?> 

Ошибка всегда появляется в строке 10 ($ this-> Подключение = pg_connect ($ Cadena)) поговорку, что пг: подключить функцию не определен, и, учитывая, мы не испытывали с использованием PG, я надеялся, что вы могли бы помочь нам

Извините, если мой английский не может, так как это не мой первый язык после всех

+0

Был ли PHP скомпилирован с [поддержкой PostgreSQL] (http://php.net/manual/en/pgsql.installation.php)? При компиляции вы должны включить флаг '--with-pgsql [= DIR]'. Согласно одному из комментариев, если вы используете систему на базе Debian, вы можете установить плагин впоследствии с помощью 'sudo apt-get install php5-pgsql'; однако я раньше этого не пробовал. – c1moore

+0

Также удалите пробелы вокруг оператора '='. 'pg_connect' использует пробелы для различения параметров. – c1moore

ответ

0

Попробуйте использовать нижнюю строку для строки подключения:

$ cadena = "host = localhost port = 5432 dbname = newdb user = postgres password = system";

Смежные вопросы