Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/04/2007, 22h28   #1
Membre confirmé
 
Inscription : mai 2002
Messages : 543
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 543
Points : 238
Points : 238
Par défaut [SQL] La requête ne fonctionne pas

Bonjour,

J'utilise la fonction suivante pour exécuter une requête SQL :
Code :
1
2
3
4
5
6
7
8
9
function query( $query ) {
  $result = @mysql_query( $query, $link );
  if ( !$result ) {
    echo ( "MySQL error " . @mysql_errno() . ": " .  @mysql_error() );
    return false;
  } else {
    return $result;
  }
}
J'appelle cette fonction avec la requête suivante :
Code :
insert into mailing_list_user (mailing_list_id, user_id) values (2, 1)
La requête semble s'exécuter sans erreur. La fonction renvoie la valeur 1. Or rien n'est inséré dans la base de données. Si j'exécute la même requête sur PHPMyAdmin, les données sont insérées !

Quelqu'un a-t-il une explication à ce mystère ?
Neuromancien2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 08h33   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Or rien n'est inséré dans la base de données.
Qu'est-ce qui te permet d'affirmer cela ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 09h10   #3
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Salut,

Code :
1
2
3
4
5
6
7
8
9
function query( $query ) {  
global $link;
$result = @mysql_query( $query, $link ); 
if ( !$result ) {  
echo ( "MySQL error " . @mysql_errno() . ": " . @mysql_error() ); return false; 
} else {  
return $result; 
} 
}
ta variable $link vaut rien dans ta fontion, elle est globale, il faut donc le préciser, essay donc comme ceci.
  Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 21h09   #4
Membre confirmé
 
Inscription : mai 2002
Messages : 543
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 543
Points : 238
Points : 238
Citation:
Envoyé par Fabouney
ta variable $link vaut rien dans ta fontion, elle est globale, il faut donc le préciser, essay donc comme ceci.
Non, query est une méthode d'une classe. La variable est $this->link, qui est bien définie.
Neuromancien2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 22h13   #5
Membre confirmé
 
Inscription : mai 2002
Messages : 543
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 543
Points : 238
Points : 238
Citation:
Envoyé par Mr N.
Qu'est-ce qui te permet d'affirmer cela ?
J'ai regardé sous PHPMyAdmin.
Neuromancien2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 09h40   #6
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
1. Est-ce que tu peux enlever tous ces @ qui biaisent ton code ?
2. rajoute un mysql_error :
Code :
$result = mysql_query( $query, $link ) or die(mysql_error());
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 10h52   #7
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
class Test
{
	var $link='test';
 
 
	function test()
	{
		echo "sans this:". $link ."<br>";
		echo "avec this:". $this->link ."<br>";
	}
}
 
$foo = new Test;
$foo->test();
Si tu met pas de $this, il connaittra pas $link, mon exemple le prouve.
donc met un $this->link et je pense que cela fonctionnera.

Cordialement.
  Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h10.


 
 
 
 
Partenaires

Hébergement Web