2012-12-31 41 views
5

created_on adı verilen DATETIME alanlı bir timetable veritabanı tablom var. PDO ifadeleri hazırlanan aracılığıyla Datetime'nın NOW() işlevi PDO-MYSQL tarafından hazırlanmış ifadelerle çalışmaz mı?

created_on DATETIME, 
notes VARCHAR(255) NOT NULL 

geçerli saat eklemek için NOW() işlevini kullanın.

INSERT INTO timetable(created_on, note) 
VALUES(?, ?); 

Yani değerlerini bağlayıcı ve hazırlanmış deyimi yürüttükten sonra ...

$notes ="This is a note..."; 
$values =array("NOW()", $notes); 
$stm->execute($values); 

... MySQL tablosunda notes sütun beklenen verileri yazıyor ama created_on sütun ...

üretir
0000-00-00 00:00:00 

Unix epoch zaman damgasını kullanmak istemiyorum. Peki NOW() işlevinde DATETIME işlevini nasıl çalıştırabilirim?

cevap

8

NOW(),

INSERT INTO timetable(created_on, note) VALUES(NOW(), ?); 

böylece notları bağlamak için gereken tek olacak.

$values =array($notes); 
2

NOW() dizgesini mysql ifadesi değil, dizge olarak geçiriyorsunuz. Bu şekilde

kullanım: parametre olarak

INSERT INTO timetable(created_on, note) 
VALUES(now(), ?); 
geçemiyor
+0

Ama bazen bu şartlı olabilir, bu yüzden şimdi diğerlerinden farklı olmak için bir değer istersiniz. – Miguel

1

NOW() anahtar sözcüğü MySQL ayrılmış bir değişkendir ve SQL tanımına girmesi gerekir, bağlanamaz. Tüm SQL anahtar sözcükleri (SELECT, FROM, WHERE, Columns isimleri, vb) bağlanamaz, SQL beyanına girmesi gerekir.

İlgili konular