За последние 24 часа нас посетили 21245 программистов и 1021 робот. Сейчас ищут 736 программистов ...

Не корректно работает редактирование

Тема в разделе "PHP для новичков", создана пользователем MrSullex, 28 июн 2016.

  1. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    Есть функция для обновления данных в бд

    Код (PHP):
    1. public function updatePromo($promoid, $data = array()) {
    2.         $sql = "UPDATE `promo`";
    3.         if(!empty($data)) {
    4.             $count = count($data);
    5.             $sql .= " SET";
    6.             foreach($data as $key => $value) {
    7.                 $sql .= " $key = '" . $this->db->escape($value) . "'";
    8.                
    9.                 $count--;
    10.                 if($count > 0) $sql .= ",";
    11.             }
    12.         }
    13.         $sql .= " WHERE `id` = '" . (int)$promoid . "'";
    14.         $query = $this->db->query($sql);
    15.         return true;
    16.     }
    Записываем данные с помощью

    Код (PHP):
    1. $cod = @$this->request->post['cod'];
    2. $replace = @$this->request->post['replace'];
    3. $skidka = @$this->request->post['skidka'];
    4.  
    5. $promoData = array(
    6.                     'cod'            => $cod,
    7.                     'skidka'            => (int)$skidka
    8.                 );
    9.  
    10.                
    11.                 $this->usersModel->updatePromo($promoid, $promoData);
    Но если еще добавить строку replace для обновления, то просто все повисает, выхлопа нет.

    Код (PHP):
    1. $promoData = array(
    2.                     'cod'            => $cod,
    3.                     'replace'            => $replace, //не работает
    4.                     'skidka'            => (int)$skidka
    5.                 );
     
  2. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    REPLACE - зарезервированное слово в MySQL.
     
  3. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    название столбца нужно сменить или что?
     
  4. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    @MrSullex, да, либо сменить название столбца, либо заключать его в кавычки
     
  5. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    не подскажете, как правильно в моем случае в кавычки заключить?
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    там где у тебя подстановка $key идет в самой строке слева и справа добавить по гравису - `
     
    mr.akv нравится это.
  7. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    Можете пожалуйста показать наглядно? Ибо слишком сложно написали для новичка XD
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    ну так с терминологией надо знакомиться. примерно до того как начинаешь что-то писать.
    $sql .= " `$key` = '" . $this->db->escape($value) . "'";
     
    mr.akv нравится это.
  9. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    Спасибо огромное, работает!