Comment transmettre une variable de type ressource ?
10 réponses
CoolAuMiers
Bonjour,
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un
appel à la fonction mysql_query(..).
Je pensais utiliser une variable de session ($_SESSION['ResultatRequete'] =
mysql_query(..) par exemple) mais c'est impossible car les variables de
session ne peuvent apparemment pas stocker des variables de type ressource.
Y a-t-il un autre moyen de transmettre ma variable ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un appel à la fonction mysql_query(..).
Je pensais utiliser une variable de session ($_SESSION['ResultatRequete'] = mysql_query(..) par exemple) mais c'est impossible car les variables de session ne peuvent apparemment pas stocker des variables de type ressource.
Et pour cause ! :-D
Une ressource, c'est un truc dont la durée de vie ne peut pas excéder celle du processus qui l'a créée. Nécessairement, lorsque ton premier script PHP rend la main, toutes les ressources disparaissent.
Y a-t-il un autre moyen de transmettre ma variable ?
Inutile de penser à la solution de récupérer toutes les données de ta base, puis de les passer en variable de session : c'est une *très* mauvaise solution, pour plein de raisons (à commencer par les perfs et la durée de vie des données elles-mêmes). Le mieux, c'est tout simplement de faire une nouvelle requête mysql dans le second script, probablement avec un filtre ne te donnant que les P lignes à partir de la ligne N+1 si le premier script s'était arrêté à la ligne N.
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un
appel à la fonction mysql_query(..).
Je pensais utiliser une variable de session ($_SESSION['ResultatRequete'] =
mysql_query(..) par exemple) mais c'est impossible car les variables de
session ne peuvent apparemment pas stocker des variables de type ressource.
Et pour cause ! :-D
Une ressource, c'est un truc dont la durée de vie ne peut pas excéder
celle du processus qui l'a créée. Nécessairement, lorsque ton premier
script PHP rend la main, toutes les ressources disparaissent.
Y a-t-il un autre moyen de transmettre ma variable ?
Inutile de penser à la solution de récupérer toutes les données de ta
base, puis de les passer en variable de session : c'est une *très*
mauvaise solution, pour plein de raisons (à commencer par les perfs
et la durée de vie des données elles-mêmes). Le mieux, c'est tout
simplement de faire une nouvelle requête mysql dans le second script,
probablement avec un filtre ne te donnant que les P lignes à partir de
la ligne N+1 si le premier script s'était arrêté à la ligne N.
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un appel à la fonction mysql_query(..).
Je pensais utiliser une variable de session ($_SESSION['ResultatRequete'] = mysql_query(..) par exemple) mais c'est impossible car les variables de session ne peuvent apparemment pas stocker des variables de type ressource.
Et pour cause ! :-D
Une ressource, c'est un truc dont la durée de vie ne peut pas excéder celle du processus qui l'a créée. Nécessairement, lorsque ton premier script PHP rend la main, toutes les ressources disparaissent.
Y a-t-il un autre moyen de transmettre ma variable ?
Inutile de penser à la solution de récupérer toutes les données de ta base, puis de les passer en variable de session : c'est une *très* mauvaise solution, pour plein de raisons (à commencer par les perfs et la durée de vie des données elles-mêmes). Le mieux, c'est tout simplement de faire une nouvelle requête mysql dans le second script, probablement avec un filtre ne te donnant que les P lignes à partir de la ligne N+1 si le premier script s'était arrêté à la ligne N.
CoolAuMiers
"Olivier Miakinen" <om+ a écrit dans le message de news:
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un appel à la fonction mysql_query(..).
Je pensais utiliser une variable de session ($_SESSION['ResultatRequete']
mysql_query(..) par exemple) mais c'est impossible car les variables de session ne peuvent apparemment pas stocker des variables de type
ressource.
Et pour cause ! :-D
Une ressource, c'est un truc dont la durée de vie ne peut pas excéder celle du processus qui l'a créée. Nécessairement, lorsque ton premier script PHP rend la main, toutes les ressources disparaissent.
C'est bien ce que j'avais cru comprendre...
Y a-t-il un autre moyen de transmettre ma variable ?
Inutile de penser à la solution de récupérer toutes les données de ta base, puis de les passer en variable de session : c'est une *très* mauvaise solution, pour plein de raisons (à commencer par les perfs et la durée de vie des données elles-mêmes). Le mieux, c'est tout simplement de faire une nouvelle requête mysql dans le second script, probablement avec un filtre ne te donnant que les P lignes à partir de la ligne N+1 si le premier script s'était arrêté à la ligne N.
OK il n'y a donc pas d'astuce particulière habituellement utilisée pour répondre au besoin. Hé ben s'il faut requêter, on va requêter ...
Merci bien pour la réponse.
Pascal.
"Olivier Miakinen" <om+news@miakinen.net> a écrit dans le message de news:
46a11d35@neottia.net...
J'aurais besoin de transmettre d'un script php à un autre le résultat
d'un
appel à la fonction mysql_query(..).
Je pensais utiliser une variable de session ($_SESSION['ResultatRequete']
mysql_query(..) par exemple) mais c'est impossible car les variables de
session ne peuvent apparemment pas stocker des variables de type
ressource.
Et pour cause ! :-D
Une ressource, c'est un truc dont la durée de vie ne peut pas excéder
celle du processus qui l'a créée. Nécessairement, lorsque ton premier
script PHP rend la main, toutes les ressources disparaissent.
C'est bien ce que j'avais cru comprendre...
Y a-t-il un autre moyen de transmettre ma variable ?
Inutile de penser à la solution de récupérer toutes les données de ta
base, puis de les passer en variable de session : c'est une *très*
mauvaise solution, pour plein de raisons (à commencer par les perfs
et la durée de vie des données elles-mêmes). Le mieux, c'est tout
simplement de faire une nouvelle requête mysql dans le second script,
probablement avec un filtre ne te donnant que les P lignes à partir de
la ligne N+1 si le premier script s'était arrêté à la ligne N.
OK il n'y a donc pas d'astuce particulière habituellement utilisée pour
répondre au besoin.
Hé ben s'il faut requêter, on va requêter ...
"Olivier Miakinen" <om+ a écrit dans le message de news:
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un appel à la fonction mysql_query(..).
Je pensais utiliser une variable de session ($_SESSION['ResultatRequete']
mysql_query(..) par exemple) mais c'est impossible car les variables de session ne peuvent apparemment pas stocker des variables de type
ressource.
Et pour cause ! :-D
Une ressource, c'est un truc dont la durée de vie ne peut pas excéder celle du processus qui l'a créée. Nécessairement, lorsque ton premier script PHP rend la main, toutes les ressources disparaissent.
C'est bien ce que j'avais cru comprendre...
Y a-t-il un autre moyen de transmettre ma variable ?
Inutile de penser à la solution de récupérer toutes les données de ta base, puis de les passer en variable de session : c'est une *très* mauvaise solution, pour plein de raisons (à commencer par les perfs et la durée de vie des données elles-mêmes). Le mieux, c'est tout simplement de faire une nouvelle requête mysql dans le second script, probablement avec un filtre ne te donnant que les P lignes à partir de la ligne N+1 si le premier script s'était arrêté à la ligne N.
OK il n'y a donc pas d'astuce particulière habituellement utilisée pour répondre au besoin. Hé ben s'il faut requêter, on va requêter ...
Merci bien pour la réponse.
Pascal.
Bruno Desthuilliers
Bonjour,
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un appel à la fonction mysql_query(..).
Tu veux dire d'une requête (HTTP) à une autre, ou c'est dans une même requête HTTP ?
Bonjour,
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un
appel à la fonction mysql_query(..).
Tu veux dire d'une requête (HTTP) à une autre, ou c'est dans une même
requête HTTP ?
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un appel à la fonction mysql_query(..).
Tu veux dire d'une requête (HTTP) à une autre, ou c'est dans une même requête HTTP ?
CoolAuMiers
"Bruno Desthuilliers" a écrit dans le message de news: 46a490b6$0$8928$
Bonjour,
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un appel à la fonction mysql_query(..).
Tu veux dire d'une requête (HTTP) à une autre, ou c'est dans une même requête HTTP ?
C'était dans 2 requêtes HTTP différentes. Mais bon, c'est pas possible puisque les resources sont liées au fichier PHP, j'ai résolu le problème en effectuant une requête différente dans chacune des parties de ma page. Pascal.
"Bruno Desthuilliers" <bruno.42.desthuilliers@wtf.websiteburo.oops.com> a
écrit dans le message de news: 46a490b6$0$8928$426a74cc@news.free.fr...
Bonjour,
J'aurais besoin de transmettre d'un script php à un autre le résultat
d'un appel à la fonction mysql_query(..).
Tu veux dire d'une requête (HTTP) à une autre, ou c'est dans une même
requête HTTP ?
C'était dans 2 requêtes HTTP différentes.
Mais bon, c'est pas possible puisque les resources sont liées au fichier
PHP, j'ai résolu le problème en effectuant une requête différente dans
chacune des parties de ma page.
Pascal.
"Bruno Desthuilliers" a écrit dans le message de news: 46a490b6$0$8928$
Bonjour,
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un appel à la fonction mysql_query(..).
Tu veux dire d'une requête (HTTP) à une autre, ou c'est dans une même requête HTTP ?
C'était dans 2 requêtes HTTP différentes. Mais bon, c'est pas possible puisque les resources sont liées au fichier PHP, j'ai résolu le problème en effectuant une requête différente dans chacune des parties de ma page. Pascal.
Olivier Miakinen
[...] c'est pas possible puisque les resources sont liées au fichier PHP,
Quoique je suppose que les choses sont claires dans ton esprit et que tu n'as juste pas choisi le bon terme, je précise quand même à l'intention des autres lecteurs : les ressources ne sont pas liées au fichier PHP, mais au processus qui exécute le script. Grosso modo, une ressource c'est essentiellement un pointeur vers une zone active de la mémoire, par exemple un pointeur de fichier ou une connexion TCP/IP active.
Je suis conscient que mes explications ne sont pas vraiment correctes non plus, mais au moins j'espère qu'il est clair qu'une ressource mysql ne contient pas l'ensemble des résultats de la requête SQL, mais juste un pointeur permettant d'y accéder par une requête à la base de données.
j'ai résolu le problème en effectuant une requête différente dans chacune des parties de ma page.
C'est parfait.
[...] c'est pas possible puisque les resources sont liées au fichier
PHP,
Quoique je suppose que les choses sont claires dans ton esprit et que tu
n'as juste pas choisi le bon terme, je précise quand même à l'intention
des autres lecteurs : les ressources ne sont pas liées au fichier PHP,
mais au processus qui exécute le script. Grosso modo, une ressource
c'est essentiellement un pointeur vers une zone active de la mémoire,
par exemple un pointeur de fichier ou une connexion TCP/IP active.
Je suis conscient que mes explications ne sont pas vraiment correctes
non plus, mais au moins j'espère qu'il est clair qu'une ressource mysql
ne contient pas l'ensemble des résultats de la requête SQL, mais juste
un pointeur permettant d'y accéder par une requête à la base de données.
j'ai résolu le problème en effectuant une requête différente dans
chacune des parties de ma page.
[...] c'est pas possible puisque les resources sont liées au fichier PHP,
Quoique je suppose que les choses sont claires dans ton esprit et que tu n'as juste pas choisi le bon terme, je précise quand même à l'intention des autres lecteurs : les ressources ne sont pas liées au fichier PHP, mais au processus qui exécute le script. Grosso modo, une ressource c'est essentiellement un pointeur vers une zone active de la mémoire, par exemple un pointeur de fichier ou une connexion TCP/IP active.
Je suis conscient que mes explications ne sont pas vraiment correctes non plus, mais au moins j'espère qu'il est clair qu'une ressource mysql ne contient pas l'ensemble des résultats de la requête SQL, mais juste un pointeur permettant d'y accéder par une requête à la base de données.
j'ai résolu le problème en effectuant une requête différente dans chacune des parties de ma page.
C'est parfait.
Bruno Desthuilliers
"Bruno Desthuilliers" a écrit dans le message de news: 46a490b6$0$8928$
Bonjour,
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un appel à la fonction mysql_query(..). Tu veux dire d'une requête (HTTP) à une autre, ou c'est dans une même
requête HTTP ?
C'était dans 2 requêtes HTTP différentes.
Ok. Rien à ajouter alors...
"Bruno Desthuilliers" <bruno.42.desthuilliers@wtf.websiteburo.oops.com> a
écrit dans le message de news: 46a490b6$0$8928$426a74cc@news.free.fr...
Bonjour,
J'aurais besoin de transmettre d'un script php à un autre le résultat
d'un appel à la fonction mysql_query(..).
Tu veux dire d'une requête (HTTP) à une autre, ou c'est dans une même
"Bruno Desthuilliers" a écrit dans le message de news: 46a490b6$0$8928$
Bonjour,
J'aurais besoin de transmettre d'un script php à un autre le résultat d'un appel à la fonction mysql_query(..). Tu veux dire d'une requête (HTTP) à une autre, ou c'est dans une même
requête HTTP ?
C'était dans 2 requêtes HTTP différentes.
Ok. Rien à ajouter alors...
Service-api
"Olivier Miakinen" <om+ a écrit dans le message de news:
[...] c'est pas possible puisque les resources sont liées au fichier PHP, ...
mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur client et fermé lorsqu'on quitte la page ?
Je suis conscient que mes explications ne sont pas vraiment correctes non plus, mais au moins j'espère qu'il est clair qu'une ressource mysql ne contient pas l'ensemble des résultats de la requête SQL, mais juste un pointeur permettant d'y accéder par une requête à la base de données.
Ca c'était bien clair. Un peu le handle des fopen(...) du C.
Pascal.
"Olivier Miakinen" <om+news@miakinen.net> a écrit dans le message de news:
46a5ad0d@neottia.net...
[...] c'est pas possible puisque les resources sont liées au fichier
PHP,
...
mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur
client et fermé lorsqu'on quitte la page ?
Je suis conscient que mes explications ne sont pas vraiment correctes
non plus, mais au moins j'espère qu'il est clair qu'une ressource mysql
ne contient pas l'ensemble des résultats de la requête SQL, mais juste
un pointeur permettant d'y accéder par une requête à la base de données.
Ca c'était bien clair. Un peu le handle des fopen(...) du C.
"Olivier Miakinen" <om+ a écrit dans le message de news:
[...] c'est pas possible puisque les resources sont liées au fichier PHP, ...
mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur client et fermé lorsqu'on quitte la page ?
Je suis conscient que mes explications ne sont pas vraiment correctes non plus, mais au moins j'espère qu'il est clair qu'une ressource mysql ne contient pas l'ensemble des résultats de la requête SQL, mais juste un pointeur permettant d'y accéder par une requête à la base de données.
Ca c'était bien clair. Un peu le handle des fopen(...) du C.
Pascal.
Bruno Desthuilliers
"Olivier Miakinen" <om+ a écrit dans le message de news:
[...] c'est pas possible puisque les resources sont liées au fichier PHP,
... mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur client et fermé lorsqu'on quitte la page ?
Le plus souvent, PHP est installé avec un serveur apache sur un système de type unix (usuellement Linux). Donc, il n'y pas de 'php.exe'. Et sauf à utiliser php en CGI (ce qui n'est pas, de loin, la solution la plus efficace), le modèle d'exécution est en fait un poil plus compliqué.
Mais globalement, oui, c'est l'idée générale.
"Olivier Miakinen" <om+news@miakinen.net> a écrit dans le message de news:
46a5ad0d@neottia.net...
[...] c'est pas possible puisque les resources sont liées au fichier
PHP,
...
mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur
client et fermé lorsqu'on quitte la page ?
Le plus souvent, PHP est installé avec un serveur apache sur un système
de type unix (usuellement Linux). Donc, il n'y pas de 'php.exe'. Et sauf
à utiliser php en CGI (ce qui n'est pas, de loin, la solution la plus
efficace), le modèle d'exécution est en fait un poil plus compliqué.
"Olivier Miakinen" <om+ a écrit dans le message de news:
[...] c'est pas possible puisque les resources sont liées au fichier PHP,
... mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur client et fermé lorsqu'on quitte la page ?
Le plus souvent, PHP est installé avec un serveur apache sur un système de type unix (usuellement Linux). Donc, il n'y pas de 'php.exe'. Et sauf à utiliser php en CGI (ce qui n'est pas, de loin, la solution la plus efficace), le modèle d'exécution est en fait un poil plus compliqué.
Mais globalement, oui, c'est l'idée générale.
CoolAuMiers
"Bruno Desthuilliers" a écrit dans le message de news: 46a7a9aa$0$1915$
"Olivier Miakinen" <om+ a écrit dans le message de news:
[...] c'est pas possible puisque les resources sont liées au fichier PHP,
... mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur client et fermé lorsqu'on quitte la page ?
Le plus souvent, PHP est installé avec un serveur apache sur un système de type unix (usuellement Linux). Donc, il n'y pas de 'php.exe'. Et sauf à utiliser php en CGI (ce qui n'est pas, de loin, la solution la plus efficace), le modèle d'exécution est en fait un poil plus compliqué.
Mais globalement, oui, c'est l'idée générale.
J'écrivais cela parce que je suis sous Windows. Pascal.
"Bruno Desthuilliers" <bdesth.quelquechose@free.quelquepart.fr> a écrit dans
le message de news: 46a7a9aa$0$1915$426a74cc@news.free.fr...
"Olivier Miakinen" <om+news@miakinen.net> a écrit dans le message de
news: 46a5ad0d@neottia.net...
[...] c'est pas possible puisque les resources sont liées au fichier
PHP,
...
mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le
navigateur client et fermé lorsqu'on quitte la page ?
Le plus souvent, PHP est installé avec un serveur apache sur un système de
type unix (usuellement Linux). Donc, il n'y pas de 'php.exe'. Et sauf à
utiliser php en CGI (ce qui n'est pas, de loin, la solution la plus
efficace), le modèle d'exécution est en fait un poil plus compliqué.
Mais globalement, oui, c'est l'idée générale.
J'écrivais cela parce que je suis sous Windows.
Pascal.
"Bruno Desthuilliers" a écrit dans le message de news: 46a7a9aa$0$1915$
"Olivier Miakinen" <om+ a écrit dans le message de news:
[...] c'est pas possible puisque les resources sont liées au fichier PHP,
... mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur client et fermé lorsqu'on quitte la page ?
Le plus souvent, PHP est installé avec un serveur apache sur un système de type unix (usuellement Linux). Donc, il n'y pas de 'php.exe'. Et sauf à utiliser php en CGI (ce qui n'est pas, de loin, la solution la plus efficace), le modèle d'exécution est en fait un poil plus compliqué.
Mais globalement, oui, c'est l'idée générale.
J'écrivais cela parce que je suis sous Windows. Pascal.
Olivier Miakinen
[...] c'est pas possible puisque les resources sont liées au fichier PHP, ...
mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur client et fermé lorsqu'on quitte la page ?
Pas tout à fait. Il y a une différence entre, d'un côté, le fichier contenant du code exécutable et, de l'autre, la mémoire de l'ordinateur qui contient tout ou partie de ce qui se trouvait dans le fichier mais aussi beaucoup d'autres choses : des variables instanciées, une pile de récursivité, un tas, etc.
Seulement nous nous éloignons de plus en plus du thème de ce groupe.
[...] mais au moins j'espère qu'il est clair qu'une ressource mysql ne contient pas l'ensemble des résultats de la requête SQL, mais juste un pointeur permettant d'y accéder par une requête à la base de données.
Ca c'était bien clair. Un peu le handle des fopen(...) du C.
Oui, exactement.
[...] c'est pas possible puisque les resources sont liées au fichier
PHP,
...
mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur
client et fermé lorsqu'on quitte la page ?
Pas tout à fait. Il y a une différence entre, d'un côté, le fichier
contenant du code exécutable et, de l'autre, la mémoire de l'ordinateur
qui contient tout ou partie de ce qui se trouvait dans le fichier mais
aussi beaucoup d'autres choses : des variables instanciées, une pile de
récursivité, un tas, etc.
Seulement nous nous éloignons de plus en plus du thème de ce groupe.
[...] mais au moins j'espère qu'il est clair qu'une ressource mysql
ne contient pas l'ensemble des résultats de la requête SQL, mais juste
un pointeur permettant d'y accéder par une requête à la base de données.
Ca c'était bien clair. Un peu le handle des fopen(...) du C.
[...] c'est pas possible puisque les resources sont liées au fichier PHP, ...
mais au processus qui exécute le script....
Le php.exe, je suppose, qui est ouvert à l'appel d'un .php par le navigateur client et fermé lorsqu'on quitte la page ?
Pas tout à fait. Il y a une différence entre, d'un côté, le fichier contenant du code exécutable et, de l'autre, la mémoire de l'ordinateur qui contient tout ou partie de ce qui se trouvait dans le fichier mais aussi beaucoup d'autres choses : des variables instanciées, une pile de récursivité, un tas, etc.
Seulement nous nous éloignons de plus en plus du thème de ce groupe.
[...] mais au moins j'espère qu'il est clair qu'une ressource mysql ne contient pas l'ensemble des résultats de la requête SQL, mais juste un pointeur permettant d'y accéder par une requête à la base de données.
Ca c'était bien clair. Un peu le handle des fopen(...) du C.