web-dev-qa-db-fra.com

Activer PHP support de postgresql sur le serveur Ubuntu 11.04

J'ai installé Apache2 avec le support php5 et tout fonctionne là-bas. J'ai installé PostgreSQL et je peux me connecter via le terminal et exécuter des instructions SQL.

PROBLÈME: Je ne parviens pas à établir de connexion entre mes scripts php et la base de données PostgreSQL. J'ai installé le php5-pgsql emballé à partir des référentiels, mais la connexion ne fonctionnera tout simplement pas.

Je reçois le message d'erreur suivant:

PHP Fatal Error: Appel de la fonction non définie pg_connect () dans /var/www/[myfile].php en ligne [X]

Comment puis-je activer le support pour les connexions PostgreSQL en PHP5 dans Ubuntu 11.04?

EDIT: Vérifié phpinfo () et n'a trouvé aucune entrée pour PostgreSQL. Je ne sais pas pourquoi, je DID installe le paquet php5-pgsql pour Ubuntu 11.04.

Voici ce qui a fonctionné: J'ai installé phppgadmin à partir des référentiels Ubuntu. Non seulement cela rend un outil Nice disponible pour moi maintenant, il a également installé les paquets nécessaires à php pour se connecter à postgresql.

Après cela, tout était dans les paramètres de connexion. Il ne se connecterait pas à la base de données sur le serveur local tant que je n'aurais pas défini la connexion hôte, port, base de données, utilisateur et mot de passe dans cet ordre dans pg_connect ().

Je ne sais toujours pas pourquoi installer php5-pgsql seul n'a pas permis les connexions PostgreSQL à partir de php. Toute contribution à ce sujet serait utile.

21
Adam

Installez le paquet php5-pgsql résout le problème . (selon la version ... php4-pgsql pour php4)

apt-get install php5-pgsql

N'oubliez pas de redémarrer Apache.

/etc/init.d/Apache2 restart

Notez que cela peut être difficile si vous n'administrez pas votre serveur.

49
Nicolaj Schweitz

Actuellement, j'utilise Ubuntu 16.04 LTS . Moi aussi, je faisais face au même problème lors de l'extraction des valeurs de la base de données Postgress à l'aide de Php.

La version mienne PHP est 7.0, j'ai donc essayé la commande ci-dessous.

apt-get install php-pgsql 

N'oubliez pas de redémarrer Apache .

/etc/init.d/Apache2 restart

Ci-dessous, mon code. Peut-être que quelqu'un bénéficiera de:

- testdb.php

<html> 
    <body> 
        <table border="0" cellspacing="0" cellpadding="0"> 
            <tr> 
                <td> 
                    Friend ID 
                </td> 
                <td> 
                     Name 
                </td> 

            </tr> 
        <?php 
        $db = pg_connect('Host=localhost dbname=postgres user=postgres password=root port=5432'); 

        $query = "SELECT * FROM account"; //account is name of table 

        $result = pg_query($query); 
        if (!$result) { 
            echo "Problem with query " . $query . "<br/>"; 
            echo pg_last_error(); 
            exit(); 
        } 

        while($myrow = pg_fetch_assoc($result)) { 
            printf ("<tr><td>%s</td><td>%s</td></tr>", $myrow['id'], htmlspecialchars($myrow['name']));
        } 
        ?> 
        </table> 
    </body> 
</html> 
4
MD Shahrouq

La seule conclusion que je puisse tirer est que phppgadmin a installé tous les paquets nécessaires pour que PHP5 se connecte à PostgreSQL. J'ai examiné les dépendances et je pense que je ne les ai pas installées du tout ou pas correctement.

Je n’ai plus besoin d’aide dans ce domaine, car j’ai une configuration fonctionnelle et je connais au moins une méthode pour arriver à ce point.

0
Adam