假设我想在不删除上一条消息的情况下更新消息行。例如:行消息具有当前值"hello",现在我想添加"hi"而不替换单词"hello"。所以结果应该是"你好嗨"。
我已经尝试了下面的代码,但它不起作用:
$text="hi";
$sql = "UPDATE class SET message= message+'$text' WHERE id=2";
或
$sql = "UPDATE class SET message= 'message'.'$text' WHERE id=2";
对不起,我的英语不太好。 感谢您的帮助
您可以使用MySQL的concat()
函数将数据附加到字段中:
$sql = "update class set message = concat(ifnull(message,"")," ".'$text') where id=2";
在附加新内容之前,您可能还需要考虑一个空格!
好吧,首先你应该真正了解SQL注入(以及如何防止它,包括预准备语句)。
您可以使用 CONCAT()
函数在 SQL 中执行此操作:
$sql = "UPDATE class SET message = CONCAT(message, '$text') WHERE id=2";
在mysql查询中尝试CONCAT 。
$text = "hi";
$myQuery = "UPDATE class SET message= CONCAT(message,'".$text."') WHERE id=2";
您应该使用用于连接字符串的 CONCAT 函数。在这里,由于您使用的是 php 变量的内容,因此最好像 '".$text."'
一样从 mysql 查询中转义 php 变量;
看看 MySql 的 CONCAT() 函数:
$sql = "UPDATE class SET message=CONCAT(message, '".$text."') WHERE id=2";
应该做这个伎俩。
你可以试试这个:
$sql = "UPDATE class SET message=CONCAT(message, '$text') WHERE id='2'";
但是,请注意,这容易受到 SQL 注入的影响