[PHP] erreur INSERT INTO (2)

erreur INSERT INTO (2) [PHP] - Programmation

Marsh Posté le 17-11-2001 à 19:42:20    

Merci pour votre réponse, effectivement il me manquait un S à Values...
MAIS!
Maintenant j'ai tj la même erreur!
 
mysql.php3 (24) : Echec requête MySQL 'INSERT INTO compte (login, secret, droits)VALUES ('xxx', 'xxxxxxxx', '0';);'
 
la fonction qui provoque ça est la suivante :
 
function compteNouveau($login, $secret, $droits) {
global $BASE_COMPTE,
$_compteId;
$md = md5($secret);
$query = "INSERT INTO compte (login, secret, droits)" .
"VALUES ('$login', '$md', '$droits';);";
mysql_quick_query($query, $_compteId, $BASE_COMPTE);
}

 
et la foncion mysql_quick_query est ddéfinie ds un autre fichier (que g mi en include) comme ceci :  
 
function mysql_quick_query($code, $mid, $base = "" ) {
if($base != "" )
@ mysql_select_db($base) or
 dieInfo("Echec de séléction '$base'", __FILE__, __LINE__);
$rid = @ mysql_query($code, $mid) or
 dieInfo("Echec requête MySQL '$code'", __FILE__, __LINE__);
return $rid;
}

 
D'ou vient mon problème???

Reply

Marsh Posté le 17-11-2001 à 19:42:20   

Reply

Marsh Posté le 17-11-2001 à 21:24:00    

:hello:

Reply

Marsh Posté le 17-11-2001 à 21:30:08    

je pense qu'il te faut un espace avant le VALUES et pas après
INSERT INTO compte (login, secret, droits) VALUES('xxx', 'xxxxxxxx', '0';)

Reply

Marsh Posté le 17-11-2001 à 22:24:21    

ouinnnnnnnnnnnn
Non ça marche toujours po!
 
Mais le problème vient d'ailleurs... la reqûete est bonne puisque quand je l'éxecute avec l'outil d'administartion de Multimania, elle marche bien.
 
Est ce que quelqu'un pourrait me donner la syntaxe exacte pour faire les fonctions mysql_quick_connect() et mysql_quick_querry() avec MULTIMANIA. Je crois que le problème vient de là!

Reply

Marsh Posté le 17-11-2001 à 22:50:33    

Bon en gros je veux savoir EXACTEMENT (un exemple s'il vs plait!) comment éxecuter une requête avec Multimania à partir d'une page PHP.
 
Eh oui je suis qu'un p'tit débutant moi!
Merci qd même à tous!  :jap:

Reply

Marsh Posté le 18-11-2001 à 10:56:35    

:heink:

Reply

Marsh Posté le 18-11-2001 à 11:18:54    

quel est le format de ta table ? 'droit' m'a tout l'air d'être un entier, donc il ne faut pas le mettre entre guillemets.
 
insert .... values('mon login', 'mon secret', 0);

Reply

Marsh Posté le 19-11-2001 à 14:45:11    

dans ta fonction mysql_quick_query, tu utilises deux parametres pour l'appel de mysql_query .... ça fait kelkes temps que je n'ai plus fait de php,   mais je me souviens ne jamais avoir utilisé 2 parametres ...   mysql_query($erquete) suffit .. voilà !

Reply

Marsh Posté le 19-11-2001 à 18:00:25    

po la bonne syntaxe
 
tu dois ecrire comme ca...
 
$query = "INSERT INTO compte VALUES ('$login', '$md', '$droits';)";  

 
ps: si tu as cree un ligne ID not null auto_increment, tu dois ecris :
 
$query = "INSERT INTO compte VALUES ('','$login', '$md', '$droits';)";

 

[edtdd]--Message édité par PaLoTTe--[/edtdd]

Reply

Marsh Posté le 19-11-2001 à 19:01:34    

Palotte : la synthaxe est tout ce qu'il y  a de plus correcte ! La synthaxe d'une requete SQL d'insertion est INSERT INTO TABLE (champ1[,champ2,...]) VALUES (valeur1[,valeur2,...])
Mais il est vrai que Mysql autoriste que l'on ne mette pas les noms de champs ...
JE viens de voir dans la doc qu'en effet on peut mettre deux parametres à mysql_query, mais je ne suis pas sur d'une grande  utilité ...

Reply

Marsh Posté le 19-11-2001 à 19:01:34   

Reply

Marsh Posté le 19-11-2001 à 19:07:20    

en ne mettant pas les noms de champs, tu vas certes plus vite, mais tu te mords les doigts quand tu rajoutes un paramètre dans la table ... il faut alors changer toutes les requêtes. en spécifiant les noms dès le départ, on peut donner des valeurs par défaut aux paramètres, et tout roule nickel :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed