2014-05-07 64 views
-1

我有一個字符串,並最終輸出刪除最後一個逗號是:PHP從字符串

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']; 

我怎麼會去之前刪除最後一個逗號在哪裏或者我想用計數器在最後的項目中說每個沒有逗號。

回答

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

+1

您正在重置循環內的數組。 – ccKep

+0

謝謝,反應太快。我已經修復了它 –

3
$terms = array() 
foreach($array as $row => $value){ 
    $terms[] = "$row = '$value'"; 
} 
$term_str = implode(',', $terms); 
預處理語句

希望你已經在其他地方佔了SQL injection attacks,並且$array的值是「安全的」...