Bonjour,

J'ai l'habitude de MySQL mais c'est la première fois que j'utilise une BDD Postgresql avec PHP.

Comme je n'obtenais pas de résultat avec le code adapté d'une autre application utilisant MySQL, je me suis fait un programme de test détaillé :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
/**
 * connexion_bdd.php
 * Active la connexion à la base de données
 * 
 * Modifié par P. Leménager le 03/10/2017 : 
 * - Adaptation pour PDO Postgresql
 */
 
$dsn = 'pgsql:host=127.0.0.1;port=5432;dbname=mabd';
try 
{
	$connexion = new PDO($dsn, 'monuserpostgresql', 'sonpassword');
	echo 'Connexion à Postgresql réussie !<br /><pre>'.var_dump($connexion);
}
catch (PDOException $e)
{
	echo 'Erreur de connexion à Postgresql ! <br />'.$e->getFile(). ' L.'.$e->getLine().' : '.$e->getMessage();
}
 
$sql = "SELECT uti_id, uti_nom, uti_prenom, uti_civ_abreviation, uti_civilite, uti_mot_passe, uti_date_creation, uti_valide
			FROM lec.v_utilisateur
			WHERE uti_login = 'plemenager' 
		";
 
try 
{
	$prep = $connexion->prepare($sql);
	echo '<br />Requête préparée : <br />'.$sql;
}
catch (PDOException $e)
{
	echo 'Erreur préparation de requête ! <br />'.$e->getFile(). ' L.'.$e->getLine().' : '.$e->getMessage();
}
 
try 
{
	$prep->execute();
	echo '<br />Requête exécutée';
}
catch (PDOException $e)
{
	echo 'Erreur exécution de requête ! <br />'.$e->getFile(). ' L.'.$e->getLine().' : '.$e->getMessage();
}
 
try 
{
	$result = $prep->fetch();
 
	echo '<br />Résultat :<br /><pre>';
	print_r($result);
	echo '</pre>';
}
catch (PDOException $e)
{
	echo 'Erreur sur résultat ! <br />'.$e->getFile(). ' L.'.$e->getLine().' : '.$e->getMessage();
}
 
?>
Lorsque j'exécute la requête dans PG Admin III ou dans Postgresql en console, j'obtiens bien ma ligne de résultat.

Mais pas avec mon programme test, dont voici l'affichage obtenu :
object(PDO)#1 (0) { } Connexion à Postgresql réussie !


Requête préparée :
SELECT uti_id, uti_nom, uti_prenom, uti_civ_abreviation, uti_civilite, uti_mot_passe, uti_date_creation, uti_valide
FROM lec.v_utilisateur
WHERE uti_login = 'plemenager'

Requête exécutée
Résultat :
Soit j'ai les neurones fatigués et je ne vois pas un truc évident, soit une subtilité différente de MySQL m'échappe dans la façon de communiquer entre PHP et Postgresql via PDO.