Maison >base de données >tutoriel mysql >Comment corriger les erreurs d'insertion de date « 0000-00-00 00:00:00 » dans PHP et MySQL ?
Format d'insertion de date PHP MySQL : résolution d'un problème de date invalide
L'insertion d'une date dans une base de données MySQL peut parfois entraîner une erreur lorsque la base de données insère uniquement '0000-00-00 00 00 00' malgré le format de date correct dans le code. Ce problème survient lorsque le format de date n'est pas reconnu par MySQL.
Pour résoudre ce problème, il est essentiel de suivre les formats de date spécifiés que MySQL accepte :
Dans le code donné, la date est reçue au format ' 25/08/2012', qui n'est pas reconnu par MySQL. Par conséquent, nous devons modifier le format de date vers l'un des formats pris en charge.
Options pour résoudre le problème de format de date :
altField et <code data-type="javascript">altFormat pour spécifier le format dans lequel la date est transmise au script PHP. Par exemple, <code data-type="javascript">altFormat : "aaaa-mm-jj".
Utilisez la fonction STR_TO_DATE() : Convertissez la chaîne de date au format pris en charge par MySQL à l'aide de STR_TO_DATE() fonction. Exemple :
INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
Utiliser l'objet DateTime : Convertissez la chaîne de date en un objet PHP DateTime, obtenez la chaîne formatée et utilisez-la dans la requête d'insertion. Exemple :
$dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']); $date = $dt->format('Y-m-d'); INSERT INTO user_date VALUES ('', '$name', '$date')
Manipuler la chaîne de date : Manipulez manuellement la chaîne de date pour la convertir dans un format MySQL valide. Exemple :
$parts = explode('/', $_POST['date']); $date = "$parts[2]-$parts[0]-$parts[1]"; INSERT INTO user_date VALUES ('', '$name', '$date')
Considérations supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!