Probleme avec la fonction sqlsrv_query() pour php/sqlserver 2008

Résolu
lemzo84 Messages postés 6 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 9 juin 2011 - 8 juin 2011 à 15:30
lemzo84 Messages postés 6 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 9 juin 2011 - 9 juin 2011 à 17:01
Bonjour,

Je souhaite enregistrer des données dans une base SQLserver 2008 via un formulaire. Quand j'appuie sur valider, j'ain pas d'erreur par contre, il n'y a rien dans la base de données. Merci pour votre aide.
Voici le code html du formulaire:





CNAP



Nom




Prenom




Sexe

Masculin
Feminin





Date de Naissance



Date de Creation









Voici le fichier php de traitement:



9 réponses

lemzo84 Messages postés 6 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 9 juin 2011
9 juin 2011 à 17:01
Tout fonctionne maintenant :ccool::ccool::ccool::ccool::ccool:
Le problème venait de la définition des champs dans SQL Server ajouté au fait que toute modification au niveau des bases était bloquée. Je mets le code php au cas où quelqu'un en aurait besoin. Merci beaucoup pour votre aide :mouarf:

$ID_Interne=$_POST['ID_Interne'];
$CNAP=$_POST['CNAP'];
$Nom=$_POST['Nom'];
$Prenom=$_POST['Prenom'];
$Sexe=$_POST['Sexe']; 
$Date_de_Naissance=$_POST['Date_de_Naissance'];
$Date_de_Creation=$_POST['Date_de_Creation'];

$insertSQL="INSERT INTO registre_personnes
(ID_Interne,
CNAP,
Nom,
Prenom,
Sexe,
Date_de_Naissance,
Date_de_Creation
)
VALUES (
'".$ID_Interne."',
'".$CNAP."',
'".$Nom."',
'".$Prenom."',
'".$Sexe."',
'".$Date_de_Naissance."',
'".$Date_de_Creation."'
)";

/*si ID_Interne est auto increment primary*/ 

$params=array($ID_Interne,
$CNAP,
$Nom,
$Prenom,
$Sexe,
$Date_de_Naissance,
$Date_de_Creation);

if($query = sqlsrv_query($conn,$insertSQL,$params)){
//bon
}
else{
echo $insertSQL.' pas bon';
die( print_r( sqlsrv_errors(), true));
}
3
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
8 juin 2011 à 15:51
bonjour

extract($_POST);
/*
$CNAP='$_POST[CNAP]';
$Nom='$_POST[Nom]';
$Prenom='$_POST[Prenom]';
$Sexe='$_POST[Sexe]';
$Date_de_Naissance='$_POST[Date_de_Naissance]';
$Date_de_Creation='$_POST[Date_de_Creation]';
*/

et

$insertSQL="INSERT INTO registre_personnes ( CNAP, Nom, Prenom, Sexe, Date_de_Naissance, Date_de_Creation)
VALUES ($ID_Interne,$CNAP,$Nom,$Prenom,$Sexe,$Date_de_Naissance,$Date_de_Creation)";

$ID_Interne le champs n'est pas selectionner

INTO registre_personnes ( ? CNAP, Nom,

Bonne programmation !
0
lemzo84 Messages postés 6 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 9 juin 2011
8 juin 2011 à 16:16
Salut j'ai enlevé ID interne car j'en avais plus besoin. Au niveau de la base de données, rien n'est sauvegardé .
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
8 juin 2011 à 18:31
je crois que la methode est pas bonne

http://207.46.16.248/fr-fr/library/cc296156(SQL.90).aspx

$insertSQL="INSERT INTO registre_personnes 
           ( ID_Interne,
             CNAP,
             Nom, 
             Prenom, 
             Sexe,
             Date_de_Naissance,
             Date_de_Creation
            )
            VALUES (
            ?,?,?,?,?,?,?
            )";

/*si ID_Interne est auto increment primary*/ 

$params=array(NULL,$CNAP, $Nom, $Prenom, $Sexe, $Date_de_Naissance, $Date_de_Creation);

if($query = sqlsrv_query( $conn,$insertSQL,$params)){
//bon
}else{
echo $insertSQL.' pas bon';
}
 
/* Close the connection. */
sqlsrv_close( $conn);

Bonne programmation !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lemzo84 Messages postés 6 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 9 juin 2011
9 juin 2011 à 09:39
Salut et merci pour ta réponse. A la place des ?, j'ai mis les Post des mes champs, mes champs sont reconnus mais j'ai l'erreur suivant lorsque je fait un test:

Connection established. INSERT INTO registre_personnes ( ID_Interne, CNAP, Nom, Prenom, Sexe, Date_de_Naissance, Date_de_Creation ) VALUES ( MBWCBQK6T280GV15LOFW7IUPH3XDE105,3614541,abc,def,Masculin,22/09/1984,01/06/2011 ) pas bon

Voici le code php de traitement du formulaire. Merci.

$ID_Interne=$_POST['ID_Interne'];
$CNAP=$_POST['CNAP'];
$Nom=$_POST['Nom'];
$Prenom=$_POST['Prenom'];
$Sexe=$_POST['Sexe']; 
$Date_de_Naissance=$_POST['Date_de_Naissance'];
$Date_de_Creation=$_POST['Date_de_Creation'];


$insertSQL="INSERT INTO registre_personnes 
           ( ID_Interne,
             CNAP,
             Nom, 
             Prenom, 
             Sexe,
             Date_de_Naissance,
             Date_de_Creation
            )
            VALUES (
            $ID_Interne,$CNAP,$Nom,$Prenom,$Sexe,$Date_de_Naissance,$Date_de_Creation
            )";

/*si ID_Interne est auto increment primary*/ 

$params=array($ID_Interne,$CNAP, $Nom, $Prenom, $Sexe, $Date_de_Naissance, $Date_de_Creation);

if($query = sqlsrv_query( $conn,$insertSQL,$params)){
//bon
}else{
echo $insertSQL.' pas bon';
}
 
/* Close the connection. */
sqlsrv_close( $conn);

?>
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
9 juin 2011 à 11:16
bonjour

mais il semblerait qu'il faille laisser les ?
c'est les valeurs du tableau qui sont remplacées ...
dans les ?
a++

Bonne programmation !
0
lemzo84 Messages postés 6 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 9 juin 2011
9 juin 2011 à 11:26
Salut, j'ai rectifié mais ça ne marche pas. J'ai comme réponse:
[b]
Connection established. INSERT INTO registre_personnes (ID_Interne, CNAP, Nom, Prenom, Sexe, Date_de_Naissance, Date_de_Creation ) VALUES ( ?,?,?,?,?,?,? ) pas bon/b
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
9 juin 2011 à 13:02
je vois pas ?
si tu as un outil comme phpmyadmin essaie une requete directe depuis la fenetre sql puis compare avec ton script

un pro de ` ou de "

essaie

$insertSQL="INSERT INTO `registre_personnes`
( ID_Interne,
CNAP,
Nom,
Prenom,
Sexe,
Date_de_Naissance,
Date_de_Creation
)
VALUES (
'".$ID_Interne."',
'".$CNAP."',
'".$Nom."',
'".$Prenom."',
'".$Sexe."',
'".$Date_de_Naissance."',
'". $Date_de_Creation."'
)";



Bonne programmation !
0
lemzo84 Messages postés 6 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 9 juin 2011
9 juin 2011 à 13:58
Salut, ça ne marche toujours pas.
J'ai toujours la même reponse:

Connection established. INSERT INTO registre_personnes (ID_Interne, CNAP, Nom, Prenom, Sexe, Date_de_Naissance, Date_de_Creation ) VALUES ( ?,?,?,?,?,?,? ) pas bon
0
Rejoignez-nous