IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PHP/SQL SERVER 2008 [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
     
    ?>

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    active la gestion des erreurs
    http://msdn.microsoft.com/en-us/library/cc626306.aspx
    et fait au moins un sqlsrv_errors dans ton echo ...

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    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. ) )

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    tu dois avoir des données qui sont trop grandes

    ps : ta requete n'est pas sécurisé

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    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 !!!

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    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 !!!

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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 ?

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    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. ) )

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    vérifie sur tout les champs l’erreur est la même

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    C'est à dire ?
    Voici le code html du formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    tes champs doivent être au maximum de la quelle longueur ?

  13. #13
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    J'ai imposé uniquement une longueur pour ID_Interne (nchar,7) et sexe (nchar,7).

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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 ...

  15. #15
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    Je viens d'enlever le n de masculin et j'ai toujours le même message.

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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

  17. #17
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    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. ) )


  18. #18
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    test en faisant un insert pour chaque champs, tu verras bien sur laquelle ça ne va pas

  19. #19
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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));
    }

  20. #20
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    sécurise ta requete maintenant, y'a un mélange dans l'utilisation de la requete préparée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL-Server] Connexion php sql server 2008 R2.
    Par sabari dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/01/2015, 13h48
  2. [SQL-Server] PHP sur WAMP Server et une base distante SQL SERVER 2008 R2
    Par leking2011 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/03/2014, 10h28
  3. Requête de php/mysql sur apache, debian vers sql server 2008
    Par tansel dans le forum Développement
    Réponses: 0
    Dernier message: 08/08/2012, 09h50
  4. Wamp Server 2 + SQL Server 2008 (PHP)
    Par Xenonmax dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/04/2011, 14h33
  5. [SQL-Server] php et SQL SERVER 2008
    Par debo41 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/09/2010, 19h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo