PHP MySQL : gestion du format de date pour l'insertion
Lors de l'insertion de dates dans une base de données MySQL, il est crucial de s'assurer qu'elles sont conformes aux normes reconnues. formats. Un problème courant rencontré lors de l'utilisation de jQuery datepicker est la non-concordance entre le format de date affiché dans le sélecteur et le format attendu par MySQL.
Dans le code fourni, la chaîne de date de jQuery datepicker est au format 'mm/jj/aaaa. ', qui n'est pas directement reconnu par MySQL. Comme indiqué dans la documentation sur les littéraux de date et d'heure de MySQL, les littéraux de date MySQL valides peuvent être aux formats « AAAA-MM-JJ », « AA-MM-JJ », « AAAAMMJJ » ou « AAMMJJ ».
Pour résoudre ce problème, vous pouvez suivre les étapes suivantes :
-
Configurer Datepicker pour renvoyer un fichier pris en charge Format : Utilisez les options altField et altFormat dans jQuery datepicker pour spécifier un champ alternatif pour stocker la date dans le format pris en charge.
-
Convertissez la chaîne de date avec STR_TO_DATE() : Convertissez la chaîne de date reçue de jQuery à l'aide de la fonction STR_TO_DATE() de MySQL vers un support pris en charge format.
-
Utilisez un objet DateTime en PHP : Analysez la chaîne de date à l'aide de la classe DateTime de PHP, qui fournit diverses méthodes pour manipuler et formater les dates.
-
Manuellement Manipuler la chaîne de date : Extrayez les composants individuels de la chaîne de date et concaténez-les dans le bon format.
Considérations supplémentaires :
-
Vulnérabilité d'injection SQL : Le code fourni est vulnérable à l'injection SQL comme il le fait n'utilisez pas d'instructions préparées. Utilisez toujours des instructions préparées pour protéger votre code contre les entrées malveillantes.
-
Extension MySQL obsolète : Les fonctions mysql_* utilisées dans le code sont obsolètes ; envisagez plutôt d'utiliser les extensions mysqli ou PDO_MySQL.
-
Recommandation pour la colonne DATE : Pour les valeurs de date sans composants temporels, envisagez d'utiliser le type DATE de MySQL au lieu de DATETIME ou TIMESTAMP.
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!