PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : PHP » ptit problème php » 23/07/2013 00:01:10

Bonsoir,

Si tu débutes en PHP, il serait préférable que tu adoptes ("les nouvelles pratiques qui soit dit en passant ne sont plus si nouvelles que cela"). En effet l'interface d'abstration d'accès aux Bases de données PDO implémente des méthodes permettant d'éviter ce genre de petit problème.

Par exemple la méthode PDO::quote() te permet de protèger une chaîne pour l'utiliser dans une requête SQL PDO.

http://www.php.net/manual/fr/book.pdo.php


Sophonie.

#2 Re : PgAdmin3 » Installation des outils serveurs » 25/12/2011 21:00:39

[Résolu]
J'ai installé le module contrib depuis les sources, en ouvrant pgAdmin3 la fenêtre est apparue mais un bouton
"fix it" (installer) était présent.

Merci encore.
Sophonie.

#3 Re : PgAdmin3 » Installation des outils serveurs » 23/12/2011 08:17:55

Dans Fichier -> Préférences onglet Préférences j'ai coché ne pas afficher les conseils d'expert.
Mais ceci n'est qu'une solution de contournement. Le problème est-il réellement résolu? N'est-ce pas un avertissement qui pourrait être bloquant pour d'autres opérations de sauvegarde par exemple?

#4 PgAdmin3 » Installation des outils serveurs » 23/12/2011 07:51:27

sophonie
Réponses : 4

Bonjour à tous et à toutes,

Je suis sur une distribution Fedora Linux

J'ai installé la version 9.1 de PostgreSQL via les sources et la version 1.14 de pgAdmin via les sources également.
Lorsque je me connecte au serveur sous pgAdmin, j'ai le message d'astuce du gourou me disant que les outils serveurs ne sont pas installés. Je ne comprends pas puissqu'il est mentionné ceci :

... est inclus en tant que module contrib pour toutes les versions de PostgreSQL, à partir de la version 8.2

Faut-il faire une manipulation de plus pour bénéficier des outils serveurs?

Merci d'avance.
Sophonie.

#5 Re : Général » Activer le support ssl dans postgresql » 10/12/2011 22:23:43

Merci pour la réponse, je vais regarder de mon côté comment récupérer les clés d'authentification.

Bonne soirée.

#6 Re : Général » Activer le support ssl dans postgresql » 10/12/2011 16:29:20

Autant pour moi, voici le contenu du fichier logfile

FATAL:  could not load server certificate file "server.crt": Aucun fichier ou dossier de ce type

#7 Re : Général » Activer le support ssl dans postgresql » 10/12/2011 15:31:29

Bonjour gleu,

Je démarre le serveur postgresql avec la commande suivante :

/usr/local/pgsql/bin/postgres -D /var/lib/pgsql/data >logfile 2>&1 &

Ensuite dans ma session utilisateur sophonie, je tape :

psql workshop

J'ai le message d'erreur suivant

psql: could not connect to server: Aucun fichier ou dossier de ce type
	Is the server running locally and accepting
	connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Merci d'avance.
Sophonie.

#8 Général » Activer le support ssl dans postgresql » 10/12/2011 02:31:52

sophonie
Réponses : 6

Bonjour à tous et à toutes,

J'ai installé postgresl 9.1 et openssl est installé sur mon poste. Il s'agit d'une installation client/serveur sur la même station de travail.
J'ai ajouté l'option --with-openssl lors de la compilation pour activer le support ssl. Il faut également modifier les variables du fichier postgresql.conf.

J'ai modifié les valeurs suivantes  en enlevant le #:

ssl = off (j'ai mis on)
ssl_ciphers
ssl_renegotiation_limit = 512MB

Le serveur ne démarre pas. Est-ce dû au fait que l'installation client/serveur soit monoposte et n'utilise pas de connexion tcp/ip?

Merci d'avance.
Sophonie.

#9 PL/pgSQL » Mise à jour décrémentielle des dates dans une table » 10/01/2011 16:29:11

sophonie
Réponses : 1

Bonjour à toutes et à tous,

Je souhaite concevoir une requête ou une procédure stockée permettant de mettre à jour la date des enregistrements dans
une table de façon décrémentielle, c'est à dire :

Tous les tuples ont la même date, et je souhaite que le premier tuple prenne la date du jour, le second la date d'hier et ainsi de suite.

Comment procéder ?

Merci d'avance.
Sophonie.

#10 Re : Général » Equivalence de la table DUAL d' Oracle sous PostgreSQL » 14/12/2010 17:14:27

Merci,
J'adopterai la seconde solution qui est beaucoup plus triviale, et simple.

Sophonie.

#11 Général » Equivalence de la table DUAL d' Oracle sous PostgreSQL » 14/12/2010 17:05:43

sophonie
Réponses : 2

Bonjour à tous et à toutes,

J'aurai souhaité savoir si sous PostgreSQL il existe une table permettant de stocker par exemple le résultat d'un calcul arithmétique de 2 littéraux.

Oracle dispose d'une table DUAL dans son catalogue système.
En saisissant la requ$ete suivante :

SELECT 365.25 * 24 * 60 * 60 " Secondes dans une annee" FROM dual;

J'obtiens le résultat escompté sans pour autant avoir crée la relation dual.

Merci d'avance,
Sophonie.

#12 Re : PHP » Affichage du résultat d'une requête » 17/08/2010 15:31:47

[Résolu]

Dans le code, il faut utiliser la syntaxe de pg_query(resource   connection  , string   query) et non l'ancienne
syntaxe ie sans la variable de connection à la Base de données --> c'est pour cela que la requête ne
renvoyait aucun résultat.

	$select = pg_query($conn_string,"SELECT * FROM marques ORDER BY marque_libelle DESC") or die("Error in query procedural --> ");
        $total = pg_num_rows($select);

// puis test sur la variable $total; construction du tableau, etc ...

Merci encore.
Sophonie.

#13 PHP » Affichage du résultat d'une requête » 17/08/2010 10:38:08

sophonie
Réponses : 1

Bonjour à tous et à toutes,

Dans le fichier PHP suivant :

<?php 
        include('connection.inc.php');                     
        
        $select = 'SELECT * FROM marques ORDER BY marque_libelle DESC';
        $clients = pg_query($select) or die ('Error in query procedural --> '.pg_last_error());
        $total = pg_num_rows($clients);
 
        if($total) {
            echo '<table bgcolor="white"'."\n";
            echo '<tr>';
            echo '<td bgcolor="#006498"><font color="white"><b><u>Num</u></b></font></td>';
            echo '<td bgcolor="#006498"><font color="white"><b><u>Marque</u></b></font></td>';
            echo '</tr>'."\n";
        
        
        //
            while($row = pg_fetch_array($clients)) {
                echo '<tr>';
                echo '<td bgcolor="#dddddd">'.$row["marque_id"].'</td>';
                echo '<td bgcolor="#dddddd">'.$row["marque_libelle"].'</td>';
                echo '</tr>'."\n";
            }
            echo '</table>'."\n";        
        }
        else {
              echo "Une erreur s'est produite.\n";
            echo "Pas d\'enregistrements dans cette table...";
              exit;
        }
        
        pg_free_result($clients);
        pg_close($dbconn)
    ?>

j'aurai voulu l'affichage suivant qui correspond aux tuples présents
dans ma Base de données Postgres.
Les tuples sont biens présents;puisque j'ai testé la requête sur le serveur de Base de données.

Merci d'avance.
Sophonie.

#14 Re : PHP » Script de connection à une Base de données PostgreSQL avec PHP » 12/08/2010 11:50:49

Je vous prie de m'excuser, je comprends pourquoi aucun affichage
n'est possible dans le navigateur.

Explication : La Base de données PostgreSQL est sur mon poste local
donc en tant que localhost alors que les FICHIERS PHP sont déposés
sur le serveur de prod. Ce qui entraine que dans la variable de
connexion je mets host=localhost, l'exécution recherche une Base de
données sur le serveur de prod. alors qu'elle n'est pas déployé sur un
serveur mais dans mon poste de travail.

Je vais donc installer la Base de données sur le serveur de prod.

Désolé.
[Résolu]

#16 Re : PHP » Script de connection à une Base de données PostgreSQL avec PHP » 12/08/2010 11:27:36

-- Je suis sous Linux Fedora 12 --

Question : Faut-il installer le module postgresql-odbc pour se connecter et interroger la Base de données?

#17 Re : PHP » Script de connection à une Base de données PostgreSQL avec PHP » 12/08/2010 11:12:16

Aucun message d'erreur ... ce qui est "troublant", par contre je me connecte sans problème à
la Base de données.
D'ailleurs ce qui m'intrigue, c'est que si la Base de données est arrêtée (j'ai un script connection.inc.php)
aucun message d'erreur ne s'affiche me disant que la connexion n'est pas possible.

<?php
    $conn_string = "host=localhost port=5432 dbname=jogstore user=xxxxxxxxxxx password=xxxxxxxxxxxxxxx";
    $dbconn = pg_connect($conn_string) or die ("Nao consegui conectar ao PostGres --> ". pg_last_error($conn);  
    
?>

Sophonie.

#18 Re : PHP » Script de connection à une Base de données PostgreSQL avec PHP » 12/08/2010 11:01:38

Bonjour gleu,

Autant pour moi car il s'agit d'un (mauvais) copier/coller sur un site PHP/MySQL de toute façon le problème
reste le même ... rien ne s'affiche avec les commandes des modules du paquet php-pgsql.

Exemple, voici une page de test permettant de tester la récupération des enregistrements d'une requête :

<html>
    <body>
        <table border="0" cellspacing="0" cellpadding="0">
            <tr>
                <td>
                    marque_id
                </td>
                <td>
                    marque_libelle
                </td>
            </tr>
        <?php
        $db = pg_connect('host=localhost dbname=jogstore user=xxxxx password=xxxxxxx');

        $query = "SELECT * FROM marques ORDER BY marque_libelle DESC";

        $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><td>%s</td><td>%s</td></tr>", $myrow['marque_id'], htmlspecialchars($myrow['marque_libelle']);
        }
        ?>
        </table>
    </body>
</html>

C'est ce qu'il y a de plus simple pourtant aucun affichage. Peut-être me manque t-il un module pour
la gestion d'une Base de données PostgreSQL avec PHP?

Sophonie.

#19 PHP » Script de connection à une Base de données PostgreSQL avec PHP » 12/08/2010 10:46:38

sophonie
Réponses : 8

Bonjour à toutes et à tous,

Je n'arrive pas à récupérer et à afficher le résultat de ma requête SQL; pourtant dans l'invite de shell psql la requête s'exécute correctement et renvoi un résultat
Voici le code PHP

<body bgcolor="white">
		<div class="header">
			<img src="img/header.png" alt="The Forgotten Garden"/>   
	    </div><!-- header -->
            
            
        <div id="container">
    	<h5>Fiche article</h5>
                      
        </div><!-- container -->
        <div class="footer">
            <img src="img/footer.png" alt="The Forgotten Garden"/>               
        </div><!-- footer -->     
    <?php 
		include('connection.inc.php');                     
        
		$select = "SELECT * FROM marques ORDER BY marque_libelle DESC";
		$clients = pg_query($select,$dbconn) or die ('Erreur : '.pg_last_error());
		$total = pg_num_rows($clients);
 
		if($total) {
			echo '<table bgcolor="white"'."\n";
			echo '<tr>';
			echo '<td bgcolor="#006498"><font color="white"><b><u>Num</u></b></font></td>';
			echo '<td bgcolor="#006498"><font color="white"><b><u>Marque</u></b></font></td>';
			echo '</tr>'."\n";
		
		
		//
			while($row = mysql_fetch_array($clients)) {
				echo '<tr>';
				echo '<td bgcolor="#dddddd">'.$row["marque_id"].'</td>';
				echo '<td bgcolor="#dddddd">'.$row["marque_libelle"].'</td>';
				echo '</tr>'."\n";
			}
			echo '</table>'."\n";		
		}
		else {
  			echo "Une erreur s'est produite.\n";
			echo "Pas d\'enregistrements dans cette table...";
  			exit;
		}
		//*on libère le résultat*//
		mysql_free_result($clients);
    ?>     
    </body>

Merci d'avance.
Sophonie.

#20 Re : PHP » Test de connexion basique » 11/08/2010 11:59:44

[Résolu]
J'ai mis la méthode d'authentification à ident afin de pouvoir me connecter à la Base de données
via psql. Ensuite dans psql je tape la commande suivante :

\password

car en fait dans la doc. il est mentionné ceci :

Si aucun mot de passe n'est enregistré pour un utilisateur, le mot de passe enregistré est nul et l'authentification par mot de passe échoue systématiquement pour cet utilisateur

Je crée un mot de passe pour l'utilisateur joachim dans la Base de données jogstore.

Ensuite je modifie le fichier pg_hba.conf en mettant la méthode d'authentification à md5, puis
je re-démarre le serveur postgres ... et je peux me connectant sans problème en tapant la
commande suivante, avec le mot de passe :

psql -h localhost -U votre_utilisateur -p 5432 jogstore

Merci encore.
Sophonie.

#21 Re : PHP » Test de connexion basique » 11/08/2010 11:09:16

La sauvegarde des fichiers est la première opération mise en oeuvre avant toute autre ...

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32         ident
host    inventaire  all         127.0.0.1       255.255.255.255      ident map=audit
host    jogstore    all         127.0.0.1       255.255.255.255      ident map=audit
# IPv6 local connections:
host    all         all         ::1/128               ident

#22 Re : PHP » Test de connexion basique » 11/08/2010 10:49:35

Bonjour gleu,

Dans le fichier pg_hba quel ligne dois-je modifier pour permettre la connection à la Base de données?
J'ai modifié la partie concernant la méthode d'identification, en mettant md5 à la place de ident mais
j'ai toujours le même mesage d'erreur, ou soit lorsque je tente de lancer le serveur postgres ce dernier
ne se lance pas.

Merci d'avance.
Sophonie.

#23 Re : PHP » Test de connexion basique » 11/08/2010 09:18:25

J'obtiens le message d'erreur suivant :

psql: FATAL:  authentification Ident échouée pour l'utilisateur « joachim »

par contre si je tape la commande suivante dans le login de shell de joachim :

psql jogstore

je  me connecte directement sans aucun message d'erreur.

#24 Re : PHP » Test de connexion basique » 10/08/2010 16:12:08

Il s'agit du fichier postgresql-Tue.log mais il n'y a rien concernant l'echec de la connexion à la
Base de données.

#25 Re : PHP » Test de connexion basique » 10/08/2010 16:07:30

Le fichier de log de PostgreSQL se trouve dans le répertoire suivant :
/var/lib/pgsql/data/pg_log
pour ma distribution

Pied de page des forums

Propulsé par FluxBB