我有一个字符串,最终输出是:
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之前的最后一个逗号,或者我想使用计数器在最后一项上说每个逗号都没有逗号。
答案 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这样的函数