2013-11-27 51 views
1

我正在使用預準備語句插入數據。 如何將變量分配給CURRENT_TIMESTAMP並綁定該值?用準備語句插入CURRENT_TIMESTAMP

我有一個數據庫表的列「名稱,lastfed,lastdoc和ID」。名爲lastfed和lastdoc的2列屬於timestamp類型。 我有一個函數,一旦我運行它,我想lastfed和lastdoc註冊當前的日期和時間。

任何幫助表示讚賞!

$lastfed = CURRENT_TIMESTAMP; 
$lastdoc = CURRENT_TIMESTAMP; 

$query = $db->prepare("INSERT INTO test (`name`, `lastfed`, `lastdoc`, `id`) VALUES (?, ?, ?, ?)"); 

$query->bindValue(1, $name); 
$query->bindValue(2, $lastfed); 
$query->bindValue(3, $lastdoc); 
$query->bindValue(4, $user); 
+0

您知道mysql和PHP是兩個本質上*不同的程序嗎? –

+1

好,因爲問題是關於將數據添加到mysql數據庫我認爲這是一個相關的主題... @YourCommonSense – Lisa

+0

這不是關於相關性,而是無關緊要。你想要使用的CURRENT_TIMESTAMP是一個** mysql **常量,當你試圖使用任何** PHP **常量時。 –

回答

10
INSERT INTO test (`name`, `lastfed`, `lastdoc`, `id`) 
VALUES (?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, ?) 

或者你設置CURRENT_TIMESTAMP爲默認這些列DB明智的。然後,您可以將它們從您的插入聲明中刪除:

INSERT INTO test (`name`, `id`) 
VALUES (?, ?) 
+0

+ 2第二種方法對我更好 – Keerthivasan

+0

謝謝!我已經嘗試了第一個建議,但沒有工作。第二個建議對我不起作用,因爲我已經在表中創建了另一個列,它被創建並且具有current_timestamp。我需要這兩列來稍後改變時間,但是當我運行特定函數(啓動)時,他們應該註冊當前時間... – Lisa

+0

我剛剛嘗試了第一個建議,並刪除了bindValue 2和3,並將其更改爲4,並且它的工作原理!當我嘗試之前,我忘了改變4 ...!謝謝!我會將此標記爲已解決! – Lisa