Probleme avec la fonction sqlsrv_query() pour php/sqlserver 2008 [Résolu]

Messages postés
6
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
9 juin 2011
- - Dernière réponse : 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:



Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
6
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
9 juin 2011
3
Merci
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));
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 127 internautes nous ont dit merci ce mois-ci

Commenter la réponse de lemzo84
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
0
Merci
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 !
Commenter la réponse de cod57
Messages postés
6
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
9 juin 2011
0
Merci
Salut j'ai enlevé ID interne car j'en avais plus besoin. Au niveau de la base de données, rien n'est sauvegardé .
Commenter la réponse de lemzo84
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
0
Merci
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 !
Commenter la réponse de cod57
Messages postés
6
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
9 juin 2011
0
Merci
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);

?>
Commenter la réponse de lemzo84
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
0
Merci
bonjour

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

Bonne programmation !
Commenter la réponse de cod57
Messages postés
6
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
9 juin 2011
0
Merci
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
Commenter la réponse de lemzo84
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
0
Merci
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 !
Commenter la réponse de cod57
Messages postés
6
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
9 juin 2011
0
Merci
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
Commenter la réponse de lemzo84