Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2011, 14h50   #1
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Par défaut PHP/SQL SERVER 2008

Bonjour, j'essaie de faire un enregistrement à partir d'un formulaire php dans une base sqlserver 2008. J'ai tout essayé, mais il me dit à chaque fois que la requête ne passe pas malgré que les champs soient reconnus. L'erreur affiché après validation du formulaire est:

Connection established. INSERT INTO `Test.registre_personnes` (ID_Interne, CNAP, Nom, Prenom, Sexe, Date_de_Naissance, Date_de_Creation ) VALUES ( 'OWR7CGIMRBS9QAX0NK168VEOTWJD3497', '123456789', 'ABC', 'DEF', 'Masculin', '01/06/2011', '30/06/2011' ) pas bon

Voici le code de traitement du formulaire en PHP:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
$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 `Test.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);
 
?>
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 14h54   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
active la gestion des erreurs
http://msdn.microsoft.com/en-us/library/cc626306.aspx
et fait au moins un sqlsrv_errors dans ton echo ...
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h07   #3
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Par défaut PHP/SQL SERVER 2008

Voici le message que j'obtiens et je n'y comprends rien du tout

Connection established. INSERT INTO registre_personnes (ID_Interne, CNAP, Nom, Prenom, Sexe, Date_de_Naissance, Date_de_Creation ) VALUES ( 'VIASURH6NVPMO7ATGXW12C4JE8FQL461', '', '', '', 'Masculin', '', '' ) pas bonArray ( [0] => Array ( [0] => 22001 [SQLSTATE] => 22001 [1] => 8152 [code] => 8152 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]String or binary data would be truncated. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]String or binary data would be truncated. ) [1] => Array ( [0] => 01000 [SQLSTATE] => 01000 [1] => 3621 [code] => 3621 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]The statement has been terminated. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]The statement has been terminated. ) )
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h10   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
tu dois avoir des données qui sont trop grandes

ps : ta requete n'est pas sécurisé
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h13   #5
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Par défaut PHP/SQL SERVER 2008

Pourrais-tu m'expliquer en détail et me donner un bout de code permettant de sécuriser ma requête stp !!!
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h14   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par lemzo84 Voir le message
Pourrais-tu m'expliquer en détail et me donner un bout de code permettant de sécuriser ma requête stp !!!
tout est dans la doc plus haut
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h22   #7
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Même si ma requête n'est pas sécurisée, elle peut s'exécuter au moins et j'ai tourner le code dans tous les sens !!!
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h24   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par lemzo84 Voir le message
Même si ma requête n'est pas sécurisée, elle peut s'exécuter au moins et j'ai tourner le code dans tous les sens !!!
t'as réglé ton problème de taille ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h53   #9
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Effectivement il y a avait un problème de taille. J'ai corrigé cela au niveau de mon formulaire html. C'est bon mais rien ne change. J'ai toujours le message:

Connection established. INSERT INTO registre_personnes (ID_Interne, CNAP, Nom, Prenom, Sexe, Date_de_Naissance, Date_de_Creation ) VALUES ( '1234567', '', '', '', 'Masculin', '', '' ) pas bonArray ( [0] => Array ( [0] => 22001 [SQLSTATE] => 22001 [1] => 8152 [code] => 8152 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]String or binary data would be truncated. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]String or binary data would be truncated. ) [1] => Array ( [0] => 01000 [SQLSTATE] => 01000 [1] => 3621 [code] => 3621 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]The statement has been terminated. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]The statement has been terminated. ) )
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h56   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
vérifie sur tout les champs l’erreur est la même
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h03   #11
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
C'est à dire ?
Voici le code html du formulaire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
<html>
<form id="Registre Personnes" name="Registre Personnes" method="POST" action="abc.php">
  <p align="center"><strong><u>Test sql server</u></strong>  </p>
  <p>
    <label for="ID_Interne"><strong>    ID_Interne</strong></label>
    <input name="ID_Interne" type="text" id="ID_Interne" size="7" />
 
    <input type="button" value="Generer code" onclick="this.form.ID_Interne.value=random()" />
  </p>
  <p>
    <label for="CNAP"><strong>CNAP</strong></label>
    <input type="text" name="CNAP" id="CNAP" />
 
  <p>
    <label for="Nom"><strong>Nom</strong></label>
    <input type="text" name="Nom" id="Nom" />
</span></p>
  <p>
    <label for="Prenom"><strong>Prenom</strong></label>
    <input type="text" name="Prenom" id="Prenom" />
</span></p>
  <p>
    <label for="Sexe"><strong>Sexe</strong></label>
    <select name="Sexe" id="Sexe">
      <option>Masculin</option>
      <option>Feminin</option>
    </select>
  </p>
  <p>
    <label for="Date_de_Naissance"><strong>Date de Naissance</strong></label>
    <input onclick="ds_sh(this);" type="text" name="Date_de_Naissance" id="Date_de_Naissance" style="cursor: text"/>
 
  <p>
    <label for="Date_de_Creation"><strong>Date de Creation</strong></label>
    <input onclick="ds_sh(this);" type="text" name="Date_de_Creation" id="Date_de_Creation" style="cursor: text"/>
 
  <p>
    <input type="submit" name="button" id="button" value="Valider" />
    <input type="reset" name="button2" id="button2" value="Réinitialiser" />
</form>
</html>
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h06   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
tes champs doivent être au maximum de la quelle longueur ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h09   #13
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
J'ai imposé uniquement une longueur pour ID_Interne (nchar,7) et sexe (nchar,7).
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h14   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par lemzo84 Voir le message
J'ai imposé uniquement une longueur pour ID_Interne (nchar,7) et sexe (nchar,7).
Masculin c'est 8 caractères ...
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h18   #15
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Je viens d'enlever le n de masculin et j'ai toujours le même message.
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h24   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par lemzo84 Voir le message
Je viens d'enlever le n de masculin et j'ai toujours le même message.
et si tu mets juste un m
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h29   #17
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
C'est fait et j'obtiens:

Connection established. INSERT INTO registre_personnes (ID_Interne, CNAP, Nom, Prenom, Sexe, Date_de_Naissance, Date_de_Creation ) VALUES ( '1234567', '', '', '', 'm', '', '' ) pas bonArray ( [0] => Array ( [0] => 22001 [SQLSTATE] => 22001 [1] => 8152 [code] => 8152 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]String or binary data would be truncated. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]String or binary data would be truncated. ) [1] => Array ( [0] => 01000 [SQLSTATE] => 01000 [1] => 3621 [code] => 3621 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]The statement has been terminated. [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]The statement has been terminated. ) )

lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h30   #18
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
test en faisant un insert pour chaque champs, tu verras bien sur laquelle ça ne va pas
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 17h01   #19
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Tout fonctionne maintenant
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 ton aide

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
$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));
}
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 17h11   #20
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
sécurise ta requete maintenant, y'a un mélange dans l'utilisation de la requete préparée
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h55.


 
 
 
 
Partenaires

Hébergement Web