2013-02-11 26 views
6

嘗試使用mysql的concat函數將文本添加到mysql中的現有值?使用CONCAT函數添加到mysql列中的現有值?

所以現有的值是目前「約翰」後功能運行將是「johnewvalue」

我試圖一段文字添加「:回覆」到這是在我的主題列在現有文本我的數據庫ptb_messages。

我想使用mysql的concat函數做到這一點,但我沒有得到任何結果,所以如此。

$sql = mysql_query("UPDATE ptb_messages SET subject = CONCAT subject, 'newvalue' WHERE id='".$message_id."'"); 

有人可以告訴我一種方法,讓它做我想做的事。謝謝。

+0

貌似無效'CONCAT'語法。您應該有一些括號。 [**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit 2013-02-11 15:52:37

回答

16

它應該是

UPDATE ptb_messages 
SET subject = CONCAT(subject, 'newvalue') 
WHERE ... 
在PHP

$sql = mysql_query("UPDATE ptb_messages SET subject = CONCAT(subject, 'newvalue') WHERE id='".$message_id."'"); 

作爲旁註

,查詢是脆弱與SQL Injection如果值(小號)的變異萊從外面來了。請看下面的文章,瞭解如何防止它。通過使用PreparedStatements你可以擺脫使用單引號圍繞值。

+0

謝謝你知道我怎麼能讓這個只運行一次? – 2013-02-11 15:58:03

+0

你是什麼意思*只運行一次*? – 2013-02-11 15:58:50

+0

當用戶回覆用戶消息時,這個放置:在主題標題之後回覆,但是如果:存在回覆,則保持主題不變,並且不再添加:回覆更多次。 – 2013-02-11 16:06:53