PHP从字符串中删除最后一个逗号

时间:2014-05-07 14:19:09

标签: php foreach

我有一个字符串,最终输出是:

UPDATE in-the-press SET title='Test 2',date='2014-05-06',description='Blah, Blah, Blah',image='admin-uploads/test.jpg',WHERE id = 1

这是通过这里生成的:

$sql = "UPDATE " . $array['tableName'] . " SET ";

                foreach($array as $row => $value){
                        if($row == 'id' || $row == 'tableName' || $row == 'submit'){
                                continue;
                        }
                        $sql .= $row . "='" . $value . "',";
                }
                $sql .= "WHERE id = " . $array['id'];

如何删除WHERE之前的最后一个逗号,或者我想使用计数器在最后一项上说每个逗号都没有逗号。

2 个答案:

答案 0 :(得分:3)

$terms = array()
foreach($array as $row => $value){
    $terms[] = "$row = '$value'";
}
$term_str = implode(',', $terms);

希望您在其他地方占据SQL injection attacks$array中的值是"安全" ...

答案 1 :(得分:1)

我总是这样做。只需为条件创建数组,然后将其内爆如下:

$sql = "UPDATE " . $array['tableName'] . " SET ";
            $set = array();
            foreach($array as $row => $value){

                    if($row == 'id' || $row == 'tableName' || $row == 'submit'){
                            continue;
                    }
                    $set[] = $row . "='" . $value."'";
            }
            $sql .= implode(',' $set);
            $sql .= "WHERE id = " . $array['id'];

当然你应该考虑使用预备语句,例如使用PDO进行查询,或者至少你应该使用像mysql_real_escape_string / mysqli_real_escape_strin这样的函数