2016-01-15 76 views
0

我想獲取getdate()和newid()值並將其插入到數據庫中。SQL插入語句中的getdate()和newid()

但是,它檢測到「getdate()」和「newid()」作爲插入到數據庫中的值。

SQL語句:

$sql="insert into product_detail_image (item_id,detail_image_name,created_on,created_by,guid) 
       values ('".$item_id."','".$name."',getdate(),'".$this->session->userdata('username')."',NEWID())"; 

結果 這是存儲到數據庫中 '4548736020191 '505b274eb69d4b781eddea0ec2514f8b.jpg' GETDATE() '' NEWID()

我想爲GETDATE什麼()是2015-12-23 14:45:59.330的值,NEWID()是1B7C352A-F46F-45C7-B2F2-697F8200409E。 我應該如何改變它?

+0

你的問題還不清楚。它到底是什麼放入數據庫,這與你的期望有什麼不同? – jbafford

+0

請參閱編輯的問題 –

+0

@benylim檢查下面的答案以及 –

回答

0

請嘗試在報價之外放置getdate()和newid()。

+0

沒有報價寫爲getdate()和newid() –

+0

@benylim是的,有 - 整個查詢是在一個帶引號的字符串。您不應該使用字符串連接構建查詢 - 您需要佔位符和準備好的語句。 Echo'$ sql',你應該看到這個問題。 –

0

試試這個

# Instead of getdate use date 
# Best for Time Stamp 
$date = date('H:i:s dd/mm/YY'); 

# Make sure session library is Loaded. 
$createdBy = $this->session->userdata('username'); 

# NEWID is not an function in php and Codeigniter 
# So i'm removing it from below array. 

所以最終插件組是

$data = array(
    'item_id'   => $item_id, 
    'detail_image_name' => $name, 
    'created_on'   => $date, 
    'created_by'   => $createdBy 
); 

$this->db->insert('product_detail_image', $data); 
0

使用下面的代碼。它會工作。

$date = getdate(); 
$guid = NEWID(); 

$data = array(
    'item_id'   => $item_id, 
    'detail_image_name' => $name, 
    'created_on'   => $date, 
    'created_by'   => $this->session->userdata('username'), 
    'guid'    => $guid 
); 

$this->db->insert('product_detail_image', $data);