insérer la valeur null date / heure dans mysql avec php provoquant 0000-00-00 / 00:00:00

je vois un couple de questions ici et d'ailleurs, que cette adresse dans certains cas, mais pas tout à fait ce dont j'ai besoin.

je suis en train de travailler avec un script qui stocke un tableau de valeurs pour faire une insertion ou mise à jour en fonction des changements.

certaines dates/horaires et certains sont nulles. je suis en train d'essayer avec $var=NULL, insertion insert into ... ('{$var}') et se 00:00:00 pour le moment si la valeur est null et de l'heure si l'heure est réglée.

d'insertion avec $var="NULL" et l'insérer dans ... ('{$var}') et se 00:00:00 si la valeur est null et de l'heure si l'heure est réglée.

si je supprimer les guillemets pour l'insertion ... ({$var}), il fonctionne si la valeur est null, mais si la date n'est pas null, il ne tient pas.

j'ai un autre champ de type VARCHAR je suis en train de faire la même chose avec et il fonctionne très bien. c'est à dire si il y a une chaîne, il est transmis sous la forme d'une chaîne de caractères et si elle est vide, je suis paramètre var=null. je suis à l'aide de citations sur la requête d'insertion et si c'est null, il va dans comme nulle et si pas null, la chaîne des inserts.

à l'aide d'une instruction conditionnelle va nécessiter un assez grand réécrire, donc je suis l'espoir de l'éviter.

des suggestions sur la façon de faire ce travail sans SI consolidés (si possible), pourrait aider.

grâce.


j'ai testé ce de plusieurs façons et je ne suis pas en mesure d'obtenir les résultats souhaités sans effectuer de la date/heure de champs de type VARCHAR, dont je n'ai pas envie de faire. voici la structure db, insérer des requêtes et des résultats.

id  int(11)         No  None    AUTO_INCREMENT                          
event_new_date_start    date            Yes NULL                                
event_new_time_start    time            Yes NULL                                
event_link  varchar(150)    latin1_swedish_ci       Yes NULL    




    $event_new_date_start1 = 'NULL';
    $event_new_time_start1 = 'NULL';
    $event_link1 = 'NULL';
    $event_new_date_start2 = '2011-04-04';
    $event_new_time_start2 = '13:13';
    $event_link2 = 'http://abc.com';
    $event_new_date_start3 = NULL;
    $event_new_time_start3 = NULL;
    $event_link3 = NULL;

    mysql_query("
    insert into test_dates (event_new_date_start, event_new_time_start, event_link) values
    ('{$event_new_date_start1}', '{$event_new_time_start1}', '{$event_link1}')
    ");

    mysql_query("
    insert into test_dates (event_new_date_start, event_new_time_start, event_link) values
    ('{$event_new_date_start2}', '{$event_new_time_start2}', '{$event_link2}')
    ");

    mysql_query("
    insert into test_dates (event_new_date_start, event_new_time_start, event_link) values
    ('{$event_new_date_start3}', '{$event_new_time_start3}', '{$event_link3}')
    ");                          


        1   0000-00-00  00:00:00    NULL
        2   2011-04-04  13:13:00    http://abc.com
        3   0000-00-00  00:00:00

quand j'ai changé la date/le temps des champs de type CHAR, il a travaillé comme prévu à l'aide de guillemets dans la requête.

        4   NULL    NULL    NULL
        5   2011-04-04  13:13   http://abc.com
        6            
InformationsquelleAutor Jazzy | 2011-05-22