Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ma requete fonctionne lors de l'initialisation de l'objet, mias plus apres...

1 réponse
Avatar
bruno
Bonjours, j'ai un bug (qui peut sembler complexe a expliquer mais
resultant s'un environnement assez simple), le texte est assez long
pour etre explicite, mais s'il vous plait, aidez moi :'( :

-je crée un objet DBAgent
lors de son initialisation, il crée un connexion a ma base.

-plus loin dans la script, j'utilise cet objet pour lancer une requete
cet appel a l'objet se fait dans un environnement "global" (pas dans
une fonction)


la requete echoue.
si je la lance a l'aide d'un outil externe (ex : MySQL Control Center)
-> la requete reussit.


------------------------
mes tests :
- var_dump sur l'objet avant de lancer la requete : l'objet existe et
possede un lien valide vers la base.

- plus bizarre :
si je lance la requete lance lors de l'initialisation de l'objet, elle
reussi.

------------------------

Mon code est le suivant :

/* la classe db fournit des outil de base telle que la methode query()
qui
* lance tout simplement une requete sur la connexion $this->link
*/

class dbAgent extends db {

function dbAgent() {
$this->hote = "localhost";
$this->user = "root";
$this->pwd = "root";
$this->base = "dtg";

$this->link = mysql_connect($this->hote , $this->user , $this->pwd )
or die("Impossible de se connecter a la base");
mysql_select_db($this->base)
or die("Could not select database");
//fin de la classe dbAgent
$test = $this->query("SELECT s_id, s_Code FROM
d_sdum");
var_dump($test);
}
}
/* include*/
/* include*/

var_dump($dbAgent);

$test = $dbAgent->query("SELECT s_id, s_Code FROM d_sdum");
var_dump($test);

-----------------
explication :

a la fin de l'initialisation de la classe, je lance la requete, un var
dump sur le resultat m'indique une ressource de resultat valide.

apres mes deux includes, je fait un var_dump sur l'objet en cause : il
est present et valide.

je lance ma requete, puis fait un var_dump sur le resultat : c'est un
booléen faux, signifiant que la requete a echouée...
------------------

cela peut sembler bizarre... en tout cas pour moi...

un autre pb plus complexe :
avec la meme architecture, j'ai un autre objet BDCO_seul qui possede
une connexion a la meme base mais sur une table differente.
sur une des mes pages, j'i une requete qui reussit, et l'autre qui
echoue... sur d'autres, elles reussissent , ou ecohuent sans veritable
logique...
mais c'est un environnemnt plus complexe...

donc si vous pouviez m'aider... svp :)


ps : j'ai essayé de rebooter mon pc, verifié si les connection
etaient conservée tout le long du script... mais rien n'y fait...

1 réponse

Avatar
Daedalus.OS
Une idée à tout hasard. T'as essayé de fournir la ressource retourné par
mysql_connect() ? Soit $dbAgent->query('SELECT...', $dbAgent->link) ou alors
directement dans ta fonction query:

function query($qry){
mysql_query($qry, $this->link);
}

Bon en fait je me base sur très peu de chose pour te suggérer ça (tu fournit
très peu de code qui pourrait nous aider à trouver le problème), mais si
plusieurs objects créés se connectent à des base de données différentes et
que tu ne fournit pas une ressource pour chaque requête, alors php utilisera
la ressource de la dernière connection effectué.

Dae


"bruno" wrote in message
news:
Bonjours, j'ai un bug (qui peut sembler complexe a expliquer mais
resultant s'un environnement assez simple), le texte est assez long
pour etre explicite, mais s'il vous plait, aidez moi :'( :

-je crée un objet DBAgent
lors de son initialisation, il crée un connexion a ma base.

-plus loin dans la script, j'utilise cet objet pour lancer une requete
cet appel a l'objet se fait dans un environnement "global" (pas dans
une fonction)


la requete echoue.
si je la lance a l'aide d'un outil externe (ex : MySQL Control Center)
-> la requete reussit.


------------------------
mes tests :
- var_dump sur l'objet avant de lancer la requete : l'objet existe et
possede un lien valide vers la base.

- plus bizarre :
si je lance la requete lance lors de l'initialisation de l'objet, elle
reussi.

------------------------

Mon code est le suivant :

/* la classe db fournit des outil de base telle que la methode query()
qui
* lance tout simplement une requete sur la connexion $this->link
*/

class dbAgent extends db {

function dbAgent() {
$this->hote = "localhost";
$this->user = "root";
$this->pwd = "root";
$this->base = "dtg";

$this->link = mysql_connect($this->hote , $this->user , $this->pwd )
or die("Impossible de se connecter a la base");
mysql_select_db($this->base)
or die("Could not select database");
//fin de la classe dbAgent
$test = $this->query("SELECT s_id, s_Code FROM
d_sdum");
var_dump($test);
}
}
/* include*/
/* include*/

var_dump($dbAgent);

$test = $dbAgent->query("SELECT s_id, s_Code FROM d_sdum");
var_dump($test);

-----------------
explication :

a la fin de l'initialisation de la classe, je lance la requete, un var
dump sur le resultat m'indique une ressource de resultat valide.

apres mes deux includes, je fait un var_dump sur l'objet en cause : il
est present et valide.

je lance ma requete, puis fait un var_dump sur le resultat : c'est un
booléen faux, signifiant que la requete a echouée...
------------------

cela peut sembler bizarre... en tout cas pour moi...

un autre pb plus complexe :
avec la meme architecture, j'ai un autre objet BDCO_seul qui possede
une connexion a la meme base mais sur une table differente.
sur une des mes pages, j'i une requete qui reussit, et l'autre qui
echoue... sur d'autres, elles reussissent , ou ecohuent sans veritable
logique...
mais c'est un environnemnt plus complexe...

donc si vous pouviez m'aider... svp :)


ps : j'ai essayé de rebooter mon pc, verifié si les connection
etaient conservée tout le long du script... mais rien n'y fait...