liste ressource de connexion

Petit nouveau ! | 6 Messages

24 janv. 2008, 23:10

Bonjour, j aimerais simplement savoir ou trouver la liste des ressources de connexion.

Que signifient :
Resource id #3
Resource id #5
Resource id #6
etc

Merci

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

25 janv. 2008, 00:00

On dirait que tu fait un echo sur une ressource.
Une ressource peut être le retour d'un mysql_query(), d'un fopen(), ...

Peux-tu nous montrer le code qui t'affiche ces lignes ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 6 Messages

25 janv. 2008, 02:01

Non c est une question de fond, je sais que le retour d'une connection a une base ou un retour de requete s'affiche avec ce genre de message : "Resource id #..."

Je suppose que Resource id #... correspond a code-message de resultat de la requete. Et j aimerais en connaitre le sens. J imagine un sens du genre "connexion réussie..."

Merci

ViPHP
ViPHP | 2287 Messages

25 janv. 2008, 10:57

Non c est une question de fond, je sais que le retour d'une connection a une base ou un retour de requete s'affiche avec ce genre de message : "Resource id #..."

Je suppose que Resource id #... correspond a code-message de resultat de la requete. Et j aimerais en connaitre le sens. J imagine un sens du genre "connexion réussie..."

Merci
Tu n'as aucun besoin de lister cela.

Quand PHP se connecte à MySQL par exemple (ou qu'il ouvre un fichier sur le système, ou n'importe quelle autre opération de ce genre), il ne fait pas tout le travail tout seul : il s'appuie sur le système d'exploitation (l' OS) de l'ordinateur sur lequel il tourne, il lui demande "ouvre moi le fichier XXX avec les paramètres WWW", ou bien encore "crée moi une connexion réseau YYY avec les paramètres ZZZ".

C'est donc l'OS qui permet à PHP d'accomplir ces tâches basiques. Lors de l'ouverture d'une connexion MySQL par exemple, PHP demande à l'OS l'ouverture d'une connexion réseau. Cette connexion doit durer dans le temps, car tu vas la réutiliser plus tard dans ton code pour communiquer avec MySQL jusqu'à ce que tu n'en aies plus besoin. Il y a donc un "canal de communication" privilégié qui se crée à ce moment là entre PHP et le système (sachant qu'il peut y en avoir plusieurs, rien ne t'interdit d'avoir plusieurs connexion à MySQL actives).

En interne, PHP doit garder une trace de toutes ces ressources (notamment pour pouvoir les fermer lui-même en fin de script si tu ne l'as pas correctement fait par exemple - car si PHP tolère très bien les bugs et les oublis, ce n'est pas forcément pareil pour ton OS).

C'est tout simplement cela que PHP appelle "Ressource". La liste des ressources (et donc leurs identifiants) se construit dynamiquement selon le programme que tu écris :-) PHP ne t'offre pas la possibilité d'explorer le contenu d'une ressource (et pour savoir un peu à quoi ça ressemble à l'intérieur, je peux te l'assurer, c'est très bien comme ça : c'est un gros bazar).

En revanche l'existence d'une ressource dans une variable ne t'informe que d'une seule chose : que le "canal de communication" existe bien (si un problème a eu lieu pendant son ouverture, PHP te renverra NULL ou FALSE à la place de la ressource). Il n'y a rien d'autre à en tirer.

Si le sujet t'intéresse et que tu veux en savoir plus, il te faudra explorer les dernière parties du manuel PHP (celles qui traitent des mécanismes internes de PHP), en commençant par exemple par cette page : http://fr2.php.net/manual/fr/resource.php
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Petit nouveau ! | 6 Messages

25 janv. 2008, 18:08

thanx Master :)

c tout con mais je parie que bien des developpeurs ignorent ce mecanisme de base.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]