ФорумРазработкаБазы данных → Генерация insert запроса в базу данных.

Генерация insert запроса в базу данных.

  • PedroGansales

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 10 февраля 2012 г. 12:31

    сабж. Может у кого завалялся скрипт PHP по массовой вставке insert в одном запросе.
    INSERT INTO Product_D VALUES 
    ('B', 1158, 'PC'),
    ('C', 2190, 'Laptop'),
    ('D', 3219, 'Printer'),…,(и тд);


  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 10 февраля 2012 г. 12:36, спустя 4 минуты 46 секунд

    Из моего старого кода

        /**
    * @example $this->db->insert('users', array('user_id' => 1));
    * @example $this->db->insert('users', array( array('user_id' => 1), array('user_id' => 2), ));
    * @param string $table
    * @param array $assoc
    * @return DBQuery_MySQL
    */
    public function insert($table, array $assoc) {
    if (isset($assoc[0])) {
    /* Multi Insert String */
    $keys = array_keys($assoc[0]);
    $assoc_esc = array();
    foreach ($keys as $key) {
    $assoc_esc[] = '`' . $key . '`';
    }
    $sql = 'INSERT INTO `' . $table . '` (' . join(',', $assoc_esc) . ') VALUES ';
    foreach ($assoc as $data) {
    $assoc_esc = array();
    foreach (array_values($data) as $value) {
    $assoc_esc[] = str_replace(array("'NULL'", '&'), array('NULL', '&'), '\'' . $this->escape($value) . '\'');
    }
    $sql .= '(' . join(',', $assoc_esc) . '),';
    }
    $sql = substr_replace($sql, ';', -1, 1);
    } else {
    /* Simple Insert String */
    $assoc_esc = array();
    foreach ($assoc as $key => $value) {
    $assoc_esc['`' . $key . '`'] = str_replace(array("'NULL'", '&'), array('NULL', '&'), '\'' . $this->escape($value) . '\'');
    }
    $sql = 'INSERT INTO `' . $table . '` (' . join(',', array_keys($assoc_esc)) . ') VALUES (' . join(',', array_values($assoc_esc)) . ');';
    }

    return $this->query($sql, false, true);
    }
  • PedroGansales

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 10 февраля 2012 г. 12:42, спустя 6 минут 30 секунд

    Cooool …
  • Sinkler

    Сообщения: 8022 Репутация: N Группа: в ухо

    Spritz 10 февраля 2012 г. 12:43, спустя 35 секунд

    три строки уже люди написать не могут, дожились
  • PedroGansales

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 10 февраля 2012 г. 12:47, спустя 4 минуты 34 секунды

    ибо пятница)
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 11 февраля 2012 г. 1:10, спустя 12 часов 22 минуты 5 секунд

    ибо лохи
    Сапожник без сапог
  • ivanscm

    Сообщения: 1251 Репутация: N Группа: Джедаи

    Spritz 11 февраля 2012 г. 2:17, спустя 1 час 7 минут 11 секунд

    ибо нехуй лохам по пятницам
    С возвращением, Пiха!

Пожалуйста, авторизуйтесь, чтобы написать комментарий!