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

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

Messages postés
6
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
9 juin 2011

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));
}
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
15
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 !
Messages postés
6
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
9 juin 2011

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

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);

?>
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
15
bonjour

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

Bonne programmation !
Messages postés
6
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
9 juin 2011

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
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
15
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 !
Messages postés
6
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
9 juin 2011

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