我必须执行类似于以下的查询:
<?php
//....connect to database
$old = "a,b,c,d";
$new = "e,f,g,h";
$insert = "UPDATE TABLE SET FIELD = CONCAT(" . $old . ", " . $new . ") WHERE something = 'something';
mysql_query($insert);
?>
基本上,我想用当前包含逗号的'new'字符串附加当前数据库条目。但由于CONCAT功能使用逗号,我遇到了麻烦..
任何人都有任何提示可以实现这一目标吗?
谢谢大家!
答案 0 :(得分:4)
更改此行
$insert = "UPDATE TABLE SET FIELD = CONCAT(" . $old . ", " . $new . ") WHERE something = 'something'";
到这个
$insert = "UPDATE TABLE SET FIELD = CONCAT('$old', '$new') WHERE something = 'something'";
编辑:
如果您想要连接的$old
和$new
字符串之间使用逗号,请使用CONCAT_WS(http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws)
像这样:
$insert = "UPDATE TABLE SET FIELD = CONCAT_WS(',', '$old', '$new') WHERE something = 'something'";
答案 1 :(得分:3)
使用函数mysql CONCAT_WS()
- &gt;与分隔符连接
UPDATE TABLE_NAME SET FIELD_NAME = CONCAT_WS(",",FIELD_NAME,FIELD_NAME2) WHERE CONDITON
答案 2 :(得分:2)
字符串必须用引号分隔。
$insert = "UPDATE TABLE SET FIELD = CONCAT(FIELD,',','$new') WHERE ...";
打破PHP字符串也没有意义,只添加无用的噪音。
另外,我闻到了database normalization
的案例答案 3 :(得分:0)
你需要在变量周围添加引号,以便获得字符串,就像这样(我还添加了一个尾随双引号):
$insert = "UPDATE TABLE SET FIELD = CONCAT('" . $old . "', '" . $new . "') WHERE something = 'something'";