mysql tarih türü alanında boş bir değer eklemek nasıl?

3 Cevap php

Bir mysql tarih türü alanında bir null veya boş bir değer eklemek için nasıl (NULL = evet).

Ben 0000-00-00 ekler boş bir değer eklemek için çalışıyorum ama boş veya null tutmak istiyorum.

Yardımlarınız için teşekkürler.

UPDATE

Ben boş olarak varsayılan bir değer olduğunu bakın

  `payment_due_on` date DEFAULT NULL,

Tamam Okies

Ben şimdi çalışma var

function get_mysqlDate($date, $delimiter='/') {
    if(check_empty($date)) {
    	return 'NULL';
    }
    list($d, $m, $y) = explode($delimiter, $date);
    //$datetime = strtotime($date);
    return "'".date('Y-m-d', mktime(0,0,0,$m, $d, $y))."'";
}




"... SET mydate = ".get_mysqldate($_POST['mydate'])." ...."

Şerefe

3 Cevap

Bu oluyor eğer sütun NOT NULL veya bir default '0000-00-00' ile tanımlanmış çünkü, bu kadar. Sen NULL s izin sütun tanımını değiştirmek gerekir ve varsayılan değeri yoktur.

Ki "boş değer" demek ne eğer insert, değil '', sıra, NULL belirterek edilmelidir.

vay .. Bu boş şeyle biraz mücadele oldu.

Ben veritabanı B'ye bir veritabanı A kopyalar, biçimleri ve veri depolayan NULL değerleri ile veritabanı A'da bir tarih alanı olduğunu bir php komut dosyası vardı. Onu kopyaladım ama ne zaman benim veritabanı B'de 0000-00-00 oldu

Sonunda gibi NULL'A tek tırnak ('null') koyarak çünkü olduğunu anlamaya.

$started_date = mysql_result($databaseA['result'],$i,"start_date");

    if (empty($published_at_date)){
     $insert_sql .= "NULL,  ";
    } 
    else 
    {
     $insert_sql .= " '" . mysql_real_escape_string($started_date) ."', ";
    }

Bu sabit.

Senin ekinizi yaparken sadece alanını ihmal.

Tablo bu gibi olduğunu söylüyorlar:

CREATE TABLE mytable(
`name` VARCHAR(30) NOT NULL,
`payment_due_on` date DEFAULT NULL);

Eğer tarih olmadan bir şey eklemek istiyorsanız, kullanın:

INSERT INTO mytable (name) VALUES ('name here');