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é :
Lorsque j'exécute la requête dans PG Admin III ou dans Postgresql en console, j'obtiens bien ma ligne de résultat.
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(); } ?>
Mais pas avec mon programme test, dont voici l'affichage obtenu :
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.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 :
Partager