2016-01-15 24 views
0

我試圖在mysql UPDATE中使用CONCAT
如何在`UPDATE`中使用`CONCAT`

"INSERT INTO table ( 
    objekt_nr, 
    objekt_status) 
VALUES(
    :objekt_nr, 
    'salj,$fakt') 

ON DUPLICATE KEY UPDATE 
    objekt_status = VALUES(CONCAT(objekt_status, 'salj,$fakt'))"; 

$query_params = array(
    ':objekt_nr' => $_POST['objekt_nr']); 

我嘗試了好幾種:

objekt_status = VALUES(CONCAT(objekt_status, objekt_status))"; 
objekt_status = VALUES(CONCAT(objekt_status, 'addMe'))"; 
objekt_status = VALUES(CONCAT(objekt_status, 'salj,$fakt'))"; 
objekt_status = VALUES((CONCAT(objekt_status, 'salj,$fakt')))"; 

錯誤代碼爲: objekt_status = VALUES(CONCAT(objekt_status, 'salj,$fakt'))";
...語法使用近 '(objekt_status, 'salj,fakt,'))'

代碼應該如何?

+0

我認爲你的代碼是不完整的,字符串不會在空中浮動。有什麼問題你有錯誤嗎? –

+0

@JuanCarlosOropeza更新! –

+0

'$ fakt'中有什麼值。 –

回答

0

其實在我的情況,我需要的「值」每一行,但CONCAT線去除values以及分號。

objekt_created_when = VALUES(objekt_created_when), 
objekt_status = CONCAT(objekt_status, 'salj,$fakt') "; 

如果我確實從所有行中刪除了VALUES,那麼db中的值就空了!

+0

您使用的是什麼框架或語言 –

+0

Bootstrap 3 .... –

2

你有一個分號,應該有一個逗號(在VALUES(objekt_nr);之後),並且它看起來在最後一行$fakt上的最後一行出現撇號。 VALUES只需要爲INSERT,手動here

這個查詢應該是正確的:

"INSERT INTO table ( 
    objekt_nr, 
    objekt_status) 
VALUES(
    :objekt_nr, 
    'salj,$fakt') 

ON DUPLICATE KEY UPDATE 
    objekt_nr = objekt_nr, 
    objekt_status = CONCAT(objekt_status, 'salj,$fakt')"; 

也請確保您的變量被轉義,或使用事先準備好的聲明。

+1

對不起分號,只是在這個演示中。但刪除值似乎解決了它。我有另一個查詢,我不使用CONCAT,然後它的工作..謝謝。 –

+0

實際上,我需要「VALUES」,因爲它是'ON DUPLICATE KEY UPDATE'如果我不使用它..值是空的...但是,在Concat上,我刪除了VALUES,現在它工作正常! –

1

嘗試從查詢

"INSERT INTO table ( 
    objekt_nr, 
    objekt_status) 
    VALUES(
    :objekt_nr, 
    'salj,$fakt') 

    ON DUPLICATE KEY UPDATE 
    objekt_nr = objekt_nr, 
    objekt_status = CONCAT(objekt_status, 'salj,'$fakt)"; 
+0

其實在我的情況下,我需要每個行的「值」,但CONCAT行。如果我確實刪除了所有行中的VALUES,則數據庫中的值變空了! –