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 :

Incorrect date value [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 5
    Par défaut Incorrect date value
    Bonjour,
    J'ai un soucis avec l'envoi d'une date depuis une page php vers une base de données.

    Dans la base de données, la variable (que j'ai nommé "datenaissance") est dans le format DATE.

    Et sur mon formulaire php, j'ai mis un input de type date (comme ci-dessous)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td class="colonne1">Date de naissance :</td>
    <td class="colonne2"><input name="datenaissance" type="date" required></td>

    Et le code php est ci-dessous
    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
    <?php
    if (isset ($_POST['envoi'])) {
    	$nom=$_POST['nom'];
    	$prenom=$_POST['prenom'];
    	$datenaissance=$_POST['datenaissance'];
    	$classe=$_POST['classe'];
    	$regime=$_POST['regime'];
    	$adressepostale=$_POST['adressepostale'];
    	$codepostal=$_POST['codepostal'];
    	$ville=$_POST['ville'];
    	$email=$_POST['email'];
    	$idsite=$_POST['idsite'];
     
    	$serveur = "localhost";
    	$base = "velo";
    	$user = "stramarnard";
    	$pass = "etatap*55";
     
    	$mysqli = new mysqli($serveur, $user, $pass, $base);
     
    	$commande = 'INSERT INTO cyclistes (validation, nom, prenom, classe, regime, datenaissance, adressepostale, codepostal, ville, adresseelectronique, identifiantweb, distancedomiciles, motdepasseweb) VALUES("0", ".$nom.", ".$prenom.", ".$classe.", ".$regime.", ".$datenaissance.", ".$adressepostale.", ".$codepostal.", ".$ville.", ".$email.", ".$idsite.", "23", "PATATEpatatePATATEpatatePATATE")';
     
    	if($mysqli->query($commande)===TRUE) {
    		echo "New record created successfully";
    	}
    	else {
    		echo "Error: " . $commande . "<br>" . $mysqli->error;
    	}
    	$mysqli->close();
    }
    ?>
    Et lorsque je complète mon formulaire, j'obtiens cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Error: INSERT INTO cyclistes (validation, nom, prenom, classe, regime, datenaissance, adressepostale, codepostal, ville, adresseelectronique, identifiantweb, distancedomiciles, motdepasseweb) VALUES("0", ".$nom.", ".$prenom.", ".$classe.", ".$regime.", ".$datenaissance.", ".$adressepostale.", ".$codepostal.", ".$ville.", ".$email.", ".$idsite.", "23", "PATATEpatatePATATEpatatePATATE")
    Incorrect date value: '.$datenaissance.' for column 'datenaissance' at row 1
    Cela fait des heures que je recherche, mais je ne trouve pas la solution.
    Auriez vous l'amabilité de bien vouloir m'aider s'il vous plaît. Merci d'avance.

    Cordialement,
    RoiPatatedu55

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Utilise une requête préparée.
    Ton problème vient du fait que tu as mis des . (point) entre les variables, or que ces points ne sont pas interprétés comme concaténation puisqu'ils se trouvent dans la chaîne. Ensuite les variables dans une chaîne limitée par un guillemet simple ' ne sont pas interprétées.

    A+.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 5
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    Utilise une requête préparée.
    Ton problème vient du fait que tu as mis des . (point) entre les variables, or que ces points ne sont pas interprétés comme concaténation puisqu'ils se trouvent dans la chaîne. Ensuite les variables dans une chaîne limitée par un guillemet simple ' ne sont pas interprétées.

    A+.
    Merci andry.aime, j'ai modifier mon code avec ton aide, j'ai donc mis plusieurs paramètres, et ça fonctionne.
    Je mets le code pour ceux qui rencontrerai le même problème.
    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
    <?php
    if (isset ($_POST['envoi'])) {
    	$nom=$_POST['nom'];
    	$prenom=$_POST['prenom'];
    	$datenaissance=$_POST['datenaissance'];
    	$classe=$_POST['classe'];
    	$regime=$_POST['regime'];
    	$adressepostale=$_POST['adressepostale'];
    	$codepostal=$_POST['codepostal'];
    	$ville=$_POST['ville'];
    	$email=$_POST['email'];
    	$idsite=$_POST['idsite'];
     
    	$serveur = "localhost";
    	$base = "velo";
    	$user = "stramarnard";
    	$pass = "etatap*55";
     
    	$mysqli = new mysqli($serveur, $user, $pass, $base);
     
    	$validation=0;
    	$distancedomiciles=23;
    	$mdpDefault="PATATEpatatePATATEpatatePATATE";
    	if ($stmt = mysqli_prepare($mysqli, "INSERT INTO cyclistes (validation, nom, prenom, classe, regime, datenaissance, adressepostale, codepostal, ville, adresseelectronique, identifiantweb, distancedomiciles, motdepasseweb) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)")) {
    		$stmt->bind_param("sssssssssssss", $validation, $nom, $prenom, $classe, $regime, $datenaissance, $adressepostale, $codepostal, $ville, $email, $idsite, $distancedomiciles, $mdpDefault);
    		mysqli_stmt_execute($stmt);
    	}
    	$mysqli->close();
    }
    ?>

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

Discussions similaires

  1. problème requete "Incorrect string value"
    Par darontankian dans le forum Débuter
    Réponses: 11
    Dernier message: 09/12/2009, 09h58
  2. [MySQL] Comprendre - Incorrect integer value: '' for column at row 1
    Par francois_a dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/09/2009, 04h04
  3. [MySQL] [php mysql et accent] : Incorrect string value '\xE0 cot\xE9.'
    Par eth85 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/02/2009, 23h24
  4. Comment faire un binding Sqlite Date value en C++ ?
    Par Hamdi Hedhili dans le forum SQLite
    Réponses: 2
    Dernier message: 23/12/2008, 14h35
  5. [mysql5]problème truncated incorrect double value xx
    Par moulefrite dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 10/11/2006, 17h17

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