0

我有这个脚本:

foreach ($_GET[selected] as &$value) {
    echo "$value|";
    mysql_query("UPDATE ordre SET enheder='$row3[enheder]|$value' WHERE id='1'") or die(mysql_error());
}

它没有做我想做的事。我希望它将数组 $value 中的字符串添加到已经存在于 MySql 中的字符串中。

如果

$value = "Server1|Server2|Server3|";

然后它应该将“enheder”更新为“OLD TEXT|Server1|Server2|Server3|” 但它没有?

4

1 回答 1

2

最好在 php 中构建您要添加的字符串,然后使用 MySQL 的CONCAT()函数将此字符串添加到数据库中已有的值中。此外,当您从用户输入创建 sql 时,转义此输入也是必不可少的。

您可以执行上述操作的一种方法是:

<?php
    $values = mysql_real_escape_string(implode("|", $_GET['selected'])) ;
    $sql = "
UPDATE ordre
SET enheder = CONCAT(enheder, '|', '{$values}')
WHERE id = '1'
    " ;
    mysql_query($sql) ;
?>
于 2013-10-29T22:11:57.637 回答