3

次のようなクエリを実行する必要があります。

<?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);
?>

したがって、基本的には、現在のデータベース エントリにコンマを含む「新しい」文字列を追加したいと考えています。しかし、CONCAT 関数はコンマを使用するため、問題が発生しています..

これを達成するためのヒントはありますか?

みんな、ありがとう!

4

4 に答える 4

5

この行を変更します

 $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'";
于 2012-03-31T06:05:08.093 に答える
3

関数 mysql を使用CONCAT_WS()-> Concatenate With Separator

UPDATE TABLE_NAME SET FIELD_NAME = CONCAT_WS(",",FIELD_NAME,FIELD_NAME2) WHERE CONDITON
于 2012-03-31T06:19:49.957 に答える
2

SQLクエリの文字列は、引用符で区切る必要があります。

$insert = "UPDATE TABLE SET FIELD = CONCAT(FIELD,',','$new') WHERE ...";

PHP文字列を壊しても意味がなく、無駄なノイズだけが追加されます。

また、データベースの正規化のケースの匂いがします

于 2012-03-31T06:05:02.447 に答える
0

次のように文字列を取得するには、変数の前後に引用符を追加する必要があります(末尾の二重引用符も追加しました)。

$insert = "UPDATE TABLE SET FIELD = CONCAT('" . $old . "', '" . $new . "') WHERE something = 'something'";
于 2012-03-31T06:02:57.283 に答える