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 : Général » Erreur "pg_query(): 5 is not a valid PostgreSQL link resource" » 25/12/2011 01:37:54

Je crois qu'il fallait que je poste mon problème pour enfin le trouver.
Je fermais la connexion à la base sans la rouvrir pour retaper dedans... Du coup il me ressortait cette erreur.

J'ai fait une fonction connectionBdd() qui initialise $bdd pour pouvoir balancer ma commande sql avec pg_query puis fermer la connexion avec pg_close.

function ListerLesDjs() {
	
        $bdd=connectionBdd();
	$sql="SELECT id,nom,prenom,description,adresseinternet,numerotel,email,date_creation,date_derniere_modification FROM DJ ORDER BY id ASC;";
	$res=pg_query($bdd,$sql);
	pg_close($bdd);

        ...
function connectionBdd() {
			$login='****';
			$pass='****';
			$dbname='****';
			$lehost='****';
			$leport=****;

			$bdd=pg_pconnect("host=$lehost port=$leport dbname=$dbname user=$login password=$pass");

		// test de connexion :
			if (!$bdd) {
				echo("Problème de connexion à la base\n");
				exit();
			}
			else {
				return $bdd;
			}
}

C'était simple comme bonjour mais j'avais pas vu.

Sur ce, je vais déballer mes cadeaux wink

#2 Général » Erreur "pg_query(): 5 is not a valid PostgreSQL link resource" » 25/12/2011 00:03:09

Shipping LAN
Réponses : 2

Bonjour à tous et joyeux Noël à tout le monde smile

Après avoir passé 3 jours à éplucher le web, je n'ai toujours pas trouver la solution à mon problème.


Sur mon site, je souhaite afficher la liste de contacts et de DJs stockés dans ma base de données.
J'ai donc une fonction ListerContacts et ListerDjs qui sont sensiblement équivalentes (seuls les noms de quelques variables et fonctions changent). Néanmoins, lors de l'appel de la fonction ListerDjs, j'ai cette erreur qui s'affiche :

Warning: pg_query(): 5 is not a valid PostgreSQL link resource in /homez.***/***/***/***/sql/fonctionsBDD.php on line 204
Warning: pg_close(): 5 is not a valid PostgreSQL link resource in /homez.***/***/***/***/sql/fonctionsBDD.php on line 205

Voilà la fonction où est l'erreur :

function ListerLesDjs($bdd) {
	global $bdd;
	
	$sql="SELECT id,nom,prenom,description,adresseinternet,numerotel,email,date_creation,date_derniere_modification FROM DJ ORDER BY id ASC;";
	$res=pg_query($bdd,$sql);
	pg_close($bdd);
	if(!$res) {
	echo "	La requête ".$sql." a échouée...
			<br/><br/>
			<a href='javascript:history.go(-1)'>Retour</a>";
	}
	$lignes = pg_numrows($res);
	for($i=0; $i<$lignes; $i++) {
		$dj[$i] = pg_fetch_array($res, $i);
		$j=$i+1;
		
		$djs.="	<div style='float:left;padding:8px'>
							DJ #".$j."
							<blockquote>
								Nom : ".$dj[$i]['nom']."<br/>
								Prénom : ".$dj[$i]['prenom']."<br/>
								Description : ".$dj[$i]['description']."<br/>
								Adresse internet : <a href='".$dj[$i]['adresseinternet']."'>".$dj[$i]['adresseinternet']."</a><br/>
								Numéro Tél : ".$dj[$i]['numerotel']."<br/>
								Email : ".$dj[$i]['email']."<br/>
								<br/>
								<form action='djs.php' method='GET'>
									<input type='hidden' name='requete' value='modifier-dj' />
									<input type='hidden' name='id' value='".$dj[$i]['id']."' />
									<input type='submit' value='Modifier' />
								</form>
								<form action='djs.php' method='GET' onclick=\"if(confirm('Êtes-vous sûr de vouloir supprimer ce DJ ?')) this.form.submit();else return false\" >
									<input type='hidden' name='requete' value='supprimer-dj' />
									<input type='hidden' name='id' value='".$dj[$i]['id']."' />
									<input type='submit' value='Supprimer' /> 
								</form>
								
							</blockquote>
							<a href='#djs'>⇑</a>
							<br/><br/>
						</div>";
	}
	
	return $djs;
}

La requête s'exécute bien quand je la tape directement dans PhpPgAdmin.

Le problème provient de pg_query, mais je ne vois pas ce que ça peut être. Je l'utilise de la même manière 3 fois dans mon code et ça ne pose pas de soucis.


Dans le doute, je vous poste mes codes :

Le fichier fonctionsBDD.php où est l'erreur : http://pastebin.com/2Abv9m4q
Le fichier djs.php qui appelle fonctionsBDD.php : http://pastebin.com/4F1eyga6
Le fichier contacts.php qui appelle lui aussi fonctionsBDD.php : http://pastebin.com/8rZQS2gz
Mon index.php qui tape dans les deux fichiers ci-dessus : http://pastebin.com/JegcAF3D




Je vous remercie par avance de l'aide précieuse que vous pourrez m'apportez.

Et encore une fois, JOYEUX NOËL smile

Pied de page des forums

Propulsé par FluxBB