За последние 24 часа нас посетили 16432 программиста и 1551 робот. Сейчас ищут 2039 программистов ...

на сколько это правильно

Тема в разделе "PHP и базы данных", создана пользователем Impulse, 27 июн 2017.

  1. Impulse

    Impulse Новичок

    С нами с:
    23 янв 2017
    Сообщения:
    23
    Симпатии:
    0
    написал код редактирования записи в БД он работает но меня терзают смутные сомнения что он кривой и можно сделать лучше

    Код (Text):
    1. public static function update($read)
    2.     {
    3.         $columns = [];
    4.         $values = [];
    5.         foreach ($read as $k => $v) {
    6.             if (empty($v)) {
    7.                 continue;
    8.             }
    9.             if ($k == 'id') {
    10.                 continue;
    11.             }
    12.             $columns[] = $k;
    13.             if (end($values)) {
    14.                 $values[] = '`' . $k . '`=\'' . $v . '\' '  ;
    15.             } else {
    16.                 $values[] = '`' . $k . '`=\'' . $v . '\', '  ;
    17.             }
    18.         }
    19.             $sql = 'UPDATE ' . static::TABLE . ' SET ' . implode($values) . ' WHERE id=' . $read->id;
    20.         $db = Db::instance();
    21.         $db->execute($sql);
    22.         }
    Код (Text):
    1. var_dump($sql);
    2.  
    3. string(116) "UPDATE news SET `title`='Метеорит убил человека, `author_id`='2' WHERE id=2"
    на сколько правильно вот так писать ?

    Код (Text):
    1.  
    2. $values[] = '`' . $k . '`=\'' . $v . '\' '  ;
    3. $values[] = '`' . $k . '`=\'' . $v . '\', '  ;
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    одинарной кавычки не хватает после слова: человека

    ещё нет защиты от вредоносных данных, почитай про sql-injection, и используй pdo подготовленные запросы или метод quote из PDO. http://phpfaq.ru/tech/safety