Vous n'êtes pas identifié(e).
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.
[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.
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?
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.
Merci pour la réponse, je vais regarder de mon côté comment récupérer les clés d'authentification.
Bonne soirée.
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
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.
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.
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.
Merci,
J'adopterai la seconde solution qui est beaucoup plus triviale, et simple.
Sophonie.
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.
[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.
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.
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]
Merci.
J'ai fais de même pour le 1er post.
-- Je suis sous Linux Fedora 12 --
Question : Faut-il installer le module postgresql-odbc pour se connecter et interroger la Base de données?
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.
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.
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.
[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.
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
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.
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.
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.
Le fichier de log de PostgreSQL se trouve dans le répertoire suivant :
/var/lib/pgsql/data/pg_log
pour ma distribution