Problème de requête [Résolu] - SQL/NoSQL - Programmation
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.
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
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...
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
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.
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)
Marsh Posté le 31-01-2005 à 23:50:32
Merci beaucoup Arjuna, ça marche maintenant !
Problème résolu !
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