2016-03-20 2 views
0

Как я могу удалить «dato» из $ this-> v? И все еще это в строке $ sql.Как удалить это из массива()?

OUTPUT (var_dump ($ this-> v)):

array (size=4) 
    ':kategori' => string 'Youstube' (length=8) 
    ':link' => string 'http://urls' (length=11) 
    ':navn' => string 'Rss feeds' (length=9) 
    ':dato' => string 'NOW()' (length=5) 

OUTPUT (эхо $ SQL)

UPDATE rss_kategori SET = Категория: Категория, ссылка =: ссылка, NAVn =: NAVn, Dato = СЕЙЧАС()

КОД:

$classVars = get_class_vars(get_class($this)); 
      $sql .= "UPDATE {$this->table} SET "; 
      foreach ($classVars as $key => $value) { 
       if ($key == 'v' || $key == 'db' || $key == 'id' || $key == 'table' || $key == 
        'table_id') { 
        continue; 
       } 
       $keys = ""; 
       $values = ""; 
       $keys .= $key; 
       if ($this->$key == 'NOW()') { 
        $values .= $this->$key . ","; 
       } else { 
        $values .= ":" . $key . ","; 
       } 
       $this->v[":" . $key] = $this->$key; 
       $sql .= "{$keys} = " . $values . " "; 

      } 

      $sql = substr($sql, 0, -2) . " WHERE {$this->table_id} = '{$this->id}'"; 
+0

вы можете использовать 'unset'. см. здесь http://stackoverflow.com/questions/369602/delete-an-element-from-an-array – Drudge

ответ

2

Пожалуйста, попробуйте следующее:

$key = ':dato'; 
$arr = $this->v; 
if (array_key_exists($key, $this->v) { 
    unset($arr[$key]); 
    $this->v = $arr; 
} 
+0

Могу ли я проверить, существует ли значение NOW() в массиве? – nodde

+0

Да @nodde. 'if (in_array ('NOW()', $ this-> v)) { echo" exists "; } else { // Blah blah } ' –

1

Пробуйте использовать unset() функцию.

unset($this->v['dato']);