[Résolu] Problème de requête

Problème de requête [Résolu] - SQL/NoSQL - Programmation

Marsh Posté le 30-01-2005 à 19:20:46    

Bonjour,  
 
Alors voilà le problème :
 
<?php
$c=pg_connect ("host=helens dbname=**** user=****" );
 $numpart=$_POST["numpart"];
 $nom1=$_POST["nom1"];
 $prenom=$_POST["prenom"];
 $pseudo=$_POST["pseudo"];
 $age=$_POST["age"];
 $sexe=$_POST["sexe"];
 $table = "insert into participants (numpart, nom1, prenom, pseudo, age, sexe) values ('".$numpart."','".$nom1."','".$prenom."','".$pseudo."','".$age."','".$sexe."');";
    $r=pg_exec ($c , $table);   //Erreur à cette ligne  
?>
 
Comme vous l'aurez sans doute compris, je souhaite rajouter un joueur avec les attributs ci-dessus mais apparement il y'a une erreur ...


Message édité par Trailx original le 31-01-2005 à 23:51:30
Reply

Marsh Posté le 30-01-2005 à 19:20:46   

Reply

Marsh Posté le 30-01-2005 à 19:27:01    

C'est quoi le message d'erreur ? Et attention aux quotes, apostrophe etc. dans les champs.

Reply

Marsh Posté le 30-01-2005 à 20:25:26    

Je n'ai pas l'erreur en tête mais je voudrais saoir si ma requête est bonne déja, il me semble que dans l'erreur il y'avait un pg_query... A vérifier

Reply

Marsh Posté le 30-01-2005 à 21:04:35    

validité de la requête dépend de la valeur de tes variables (eg une apostrophe dans le nom ou le prénom et tu es foutu)
 
hmmm, c plus un pb PHP que SQL à mon avis...

Reply

Marsh Posté le 30-01-2005 à 21:06:39    

Le pire c'est que j'ai utilisé la meme syntaxe dans 3 fichiers et à chaque fois l'erreur se situe à cette ligne  :(

Reply

Marsh Posté le 30-01-2005 à 21:29:17    

Tu voudras bien tester ta requête SQL ?
 
Si elle est bonne, c'est un pb PHP et tu n'es pas dans la bonne cat.
 
Si elle est mauvaise, merci de retirer le PHP et de ne garder que le SQL.
 
PHP <> SQL.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 31-01-2005 à 16:27:38    

Juste un truc : Selon les SGBD, et surtout, selon leur configuration, mettre une chaîne de caractères ( '123' ) dans un champ de type numérique peut planter.
 
Je pense à ça quand je vois "'".$age."'" dans ta requête...
 
Dans ton SGBD, essaie de passer cette requête (exactement)
 
insert into participants (numpart, nom1, prenom, pseudo, age, sexe) values ('1000','Eldnewmann','Alfred','Freddo','45','M');
 
Et si ça plante, essaie :
 
insert into participants (numpart, nom1, prenom, pseudo, age, sexe) values (1000,'Eldnewmann','Alfred','Freddo',45,'M');
 
Si la première requête plante, vérifie que tu n'as pas de ' dans tes variables nom, prenom et pseudo.
Et si c'est pas le cas, vire ton ";" à la fin de la requête, la plus part des SGBD n'aiment pas ça quand on n'utilise pas directement outils de requêtage (ça fait planter une requête ODBC par exemple).
 
Et si c'est toujours pas ça, vire ce putain de magicquote de merde ! C'est une daube finie installée par défaut par PHP et qui fout la merde dans les requêtes, en passant des caractères interdits aux SGBD (syntaxe 100% proprio MySQL, supportée de justesse par Oracle : c'est des codes ISO, alors que le SQL n'a rien à voir avec ISO)

Reply

Marsh Posté le 31-01-2005 à 23:50:32    

Merci beaucoup Arjuna, ça marche maintenant !
Problème résolu !

Reply

Marsh Posté le 01-02-2005 à 10:59:11    

Et c'était quoi qui n'allait pas alors ? :)

Reply

Sujets relatifs:

Leave a Replay

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