web-dev-qa-db-fra.com

PHP - Insérer la date dans mysql

J'essaie d'insérer une date dans mysql mais chaque fois qu'elle échoue et qu'elle sort sous la forme 0000-00-00 dans phpmyadmin

Mon format de date ressemble à 2012-08-06 (aaaa-mm-jj) et le type de champ de date dans la base de données est date.

$date = "2012-08-06";
mysql_query("INSERT INTO data_table (title, date_of_event) 
             VALUES('". $_POST['post_title'] ."',
                    '". $date ."')") or die(mysql_error()); 

essayé de changer - en / ou de les supprimer, cela ne fonctionne pas. 

11
xperator

essayez la fonction CAST dans MySQL:

mysql_query("INSERT INTO data_table (title, date_of_event)
VALUES('". $_POST['post_title'] ."',
CAST('". $date ."' AS DATE))") or die(mysql_error()); 
12
Omesh

essayer

$date = "2012-08-06";
$date=date("Y-m-d",strtotime($date));
10
WatsMyName

Comment déboguer des requêtes SQL lorsque vous êtes bloqué

Imprimez votre requête et exécutez-la directement dans mysql ou phpMyAdmin

$date = "2012-08-06";
$query= "INSERT INTO data_table (title, date_of_event) 
             VALUES('". $_POST['post_title'] ."',
                    '". $date ."')";
echo $query;
mysql_query($query) or die(mysql_error()); 

de cette façon, vous pouvez vous assurer que le problème ne réside pas dans votre script PHP, mais dans votre requête SQL

Comment soumettre des questions sur des requêtes SQ

Assurez-vous que vous avez fourni assez de fermeture

  • Schéma de table
  • Question
  • Le message d'erreur est quelconque
0
Maksim Burnin

Sauf si vous souhaitez insérer des dates différentes de "aujourd'hui", vous pouvez utiliser CURDATE ():

$sql = 'INSERT INTO data_tables (title, date_of_event) VALUES ("%s", CURDATE())';
$sql = sprintf ($sql, $_POST['post_title']);

PS! N'oubliez pas de nettoyer votre entrée MySQL, en particulier via mysql_real_escape_string ()

0
DavidS

essayez de convertir la date en premier.

$date = "2012-08-06";

mysql_query("INSERT INTO data_table (title, date_of_event)
               VALUES('" . $_POST['post_title'] . "',
                      '" . $date . "')") 
           or die(mysql_error());
0
John Woo