Probleme ODBC sur PHP

Bonjour,

J'ai un soucis ODBC, php me renvoit l'erreur

Warning: odbc_do() [function.odbc-do]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 2 attendu., SQL state 07001 in SQLExecDirect in C:\wamp\www\....


Alors que mon code est :

<?php 
$cnx=odbc_connect('bdd','',''); 
if ($cnx)  
    { 
    $requete="select * from Utilisateurs;"; 
    $jeu =odbc_do($cnx,$requete); 

    while(odbc_fetch_into($jeu,$champ)) 
    { 
    if ($champ[0] <> NULL) 
         
        $Nom =$_POST["nom"]; 
        $Prenom=$_POST["prenom"]; 
        $Age=$_POST["age"]; 
        $Ville=$_POST["ville"]; 
        $Rue=$_POST["rue"]; 
        $CodePostal=$_POST["codepostal"]; 
        $Pseudo=$_POST["pseudo"]; 
        $Motdepasse=$_POST["motdepasse"]; 
        $Sexe=$_POST["sexe"]; 
        $Mail=$_POST["mail"]; 
        $Telephone=$_POST["telephone"]; 
         
        $sql='INSERT INTO Utilisateurs (NomUSER,PrénomUSER,AgeUSER,VilleUSER,RueUSER,CPUSER,PseudoUSER,MDPUSER,SexeUSER,EmailUSER,TelUSER) VALUES("'.$Nom.'","'.$Prenom.'","'.$Age.'","'.$Ville.'","'.$Rue.'","'.$CodePostal.'","'.$Pseudo.'","'.$Motdepasse.'","'.$Sexe.'","'.$Mail.'","'.$Telephone.'");'; 

        } 
        echo'<p>'.$Nom.'</p>'; 
        echo'<p>'.$Prenom.'</p>'; 
        echo'<p>'.$Age.'</p>'; 
        echo'<p>'.$Ville.'</p>'; 
        echo'<p>'.$Rue.'</p>'; 
        echo'<p>'.$CodePostal.'</p>'; 
        echo'<p>'.$Pseudo.'</p>'; 
        echo'<p>'.$Sexe.'</p>'; 
        echo'<p>'.$Mail.'</p>'; 
        echo'<p>'.$Telephone.'</p>'; 
        odbc_do($cnx,$sql); 
         
} 

else 
echo'Problème à la connexion<br/>'; 
odbc_close($cnx); 

?>


Quel est mon problème ? Je croyais que ODBC_DO devait contenir 2 paramètres seulement et la on m'en demande 8 !

Merci de votre aide

Xineroks

7 réponses

  1. Salut,
    la syntaxe de ta requête n'est pas bonne.
    "select * from Utilisateurs";  
    
    1. Si, elle est bonne ^^
      Ce n'est pas mon erreur :/

      J'ai oublié de préciser que mon erreur provient de mon 2eme odbc_do($cnx,$sql)
      1. Tu met l'exécution de ta requête en dehors du while, donc du coup $sql n'existe pas...
        1. J'ai testé aussi dedans, mais ça ne fonctionne pas non plus ... Je ne comprend plus rien
          1. UP :(

            Je desespère, je recherche mon erreur depuis longtemps

            de plus j'ai testé avec un nouveau code encore et encore mais j'ai l'erreur comme quoi je dois avoir 10 arguments dans mon odbc_do() ...

            <?php
            $cnx=odbc_connect('bdd','','');
            if ($cnx) 
            	{
            	$requete="select * from Utilisateurs;";
            	$jeu =odbc_do($cnx,$requete);
            
            	while(odbc_fetch_into($jeu,$champ))
            	{
            	if ($champ[0] <> NULL)
            		
            		$Nom =$_POST["nom"];
            		$Prenom=$_POST["prenom"];
            		$Age=$_POST["age"];
            		$Ville=$_POST["ville"];
            		$Rue=$_POST["rue"];
            		$CodePostal=$_POST["codepostal"];
            		$Pseudo=$_POST["pseudo"];
            		$Motdepasse=$_POST["motdepasse"];
            		$Sexe=$_POST["sexe"];
            		$Mail=$_POST["mail"];
            		$Telephone=$_POST["telephone"];
            		odbc_do($cnx,'INSERT INTO Utilisateurs (NomUSER,PrénomUSER,AgeUSER,VilleUSER,RueUSER,CPUSER,PseudoUSER,MDPUSER,SexeUSER,EmailUSER,TelUSER) VALUES("'.$Nom.'","'.$Prenom.'","'.$Age.'","'.$Ville.'","'.$Rue.'","'.$CodePostal.'","'.$Pseudo.'","'.$Motdepasse.'","'.$Sexe.'","'.$Mail.'","'.$Telephone.'");');
            		#$sql='INSERT INTO Utilisateurs #(NomUSER,PrénomUSER,AgeUSER,VilleUSER,RueUSER,CPUSER,PseudoUSER,MDPUSER,SexeUSER,EmailUSER,TelUSER) #VALUES("'.$Nom.'","'.$Prenom.'","'.$Age.'","'.$Ville.'","'.$Rue.'","'.$CodePostal.'","'.$Pseudo.'","'.$Motdepasse.'","'.#$Sexe.'","'.$Mail.'","'.$Telephone.'");';
            
            		}
            		echo'<p>'.$Nom.'</p>';
            		echo'<p>'.$Prenom.'</p>';
            		echo'<p>'.$Age.'</p>';
            		echo'<p>'.$Ville.'</p>';
            		echo'<p>'.$Rue.'</p>';
            		echo'<p>'.$CodePostal.'</p>';
            		echo'<p>'.$Motdepasse.'</p>';
            		echo'<p>'.$Pseudo.'</p>';
            		echo'<p>'.$Sexe.'</p>';
            		echo'<p>'.$Mail.'</p>';
            		echo'<p>'.$Telephone.'</p>';
            
            
            
            }
            
            else
            echo'Problème à la connexion<br/>';
            odbc_close($cnx);
            
            ?>