ФорумПрограммированиеPHP для идиотов → Многосайтовось...

Многосайтовось...

  • Абырвалг

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

    Spritz 20 апреля 2010 г. 1:07, спустя 6 минут 35 секунд

    сейчас
    $_model = Mage::getModel('eee/eeeModel');

    foreach ($responseDocItems as $item) {
    $changedItem = array(
    'key' => $item['value'],
    );

    // save
    $_model->setData($changedItem)->save(); // over 9000 INSERT'ов
    }


    хочу что-то типа
    INSERT INTO `my_table` (`kay`) VALUES ('value1'), ('value2');

    Но использовать Zend_Db_Select низя, через модель нужно делать
  • NRG

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

    Spritz 20 апреля 2010 г. 1:11, спустя 3 минуты 51 секунду

    что тебя обязывает делать через модель ?
  • Абырвалг

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

    Spritz 20 апреля 2010 г. 1:12, спустя 1 минуту 8 секунд

    я не знаю как получить префикс таблиц *покраснел от стыда*
    Спустя 25 сек.
    зы: наверно стоит выделить часть темы об обсуждении Мадженты в отдельную тему
  • LIFF

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

    Spritz 20 апреля 2010 г. 1:17, спустя 5 минут 20 секунд

    Я что жрет то на 4 сервака?
  • NRG

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

    Spritz 20 апреля 2010 г. 1:21, спустя 3 минуты 28 секунд


    я не знаю как получить префикс таблиц *покраснел от стыда*
    и изза этого ты в цикле дергаешь сейв модели 9000 раз ???
    скажу по секрету, в /app/etc/local.xml есть нода table_prefix (global/resources/db/table_prefix)
    как получать данные из конфига ты разобрался ?
    Спустя 124 сек.

    Я что жрет то на 4 сервака?
    не жрет, а хорошо себя чувствует.
    один балансер, два с копией магенты и один под базу.
    повторяю, у клиентов, на продакшене, где в день дофигища посещений, нормально и на одном серве работает
  • Абырвалг

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

    Spritz 20 апреля 2010 г. 1:23, спустя 2 минуты 37 секунд

    NRG, я видел эту ноду, но не парсить же мне эту XML'ку перед инсертом =)

    Нагуглил такое:
    $tableName = Mage::getSingleton('core/resource')->getTableName('catalog_product_option');

    завтра буду проверять.

    как получать данные из конфига ты разобрался ?

    по всей видимости нет)
  • NRG

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

    Spritz 20 апреля 2010 г. 1:27, спустя 3 минуты 48 секунд


    NRG, я видел эту ноду, но не парсить же мне эту XML'ку перед инсертом =)

    Нагуглил такое:
    $tableName = Mage::getSingleton('core/resource')->getTableName('catalog_product_option');

    завтра буду проверять.

    как получать данные из конфига ты разобрался ?

    по всей видимости нет)
    при каждом запуске аппликашна у тебя есть модель конфига (уже собранного, распарсенного и смерженого)
    а метод getTableName() всегда возвращает имя таблицы с префиксом(если он есть)
  • NRG

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

    Spritz 20 апреля 2010 г. 1:33, спустя 5 минут 39 секунд

    кстати, в самом методе getTableName() префикс вытягивается так Mage::getConfig()->getTablePrefix();
    ты бы чтоли хоть открыл сам метод посмотреть как он работает))
  • Абырвалг

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

    Spritz 20 апреля 2010 г. 1:35, спустя 2 минуты 33 секунды

    та бля, у меня нетбинс в ахуе от такого кол-ва сорцов. Реально набираю код, а он появляется на экране секунды через 3. Я уже не говорю про автодополнение или qTip'ы.

    + еще навигация по Ctrl+left mouse click не работает в методах после getSingleton, getModel.

    ps: спасибо
  • NRG

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

    Spritz 20 апреля 2010 г. 1:38, спустя 3 минуты


    та бля, у меня нетбинс в ахуе от такого кол-ва сорцов. Реально набираю код, а он появляется на экране секунды через 3. Я уже не говорю про автодополнение или qTip'ы.

    + еще навигация по Ctrl+left mouse click не работает в методах после getSingleton, getModel.

    ps: спасибо
    у меня в зенд судии фор еклипс все летает, впринципе летает также как и летало в еклипсе…
  • Абырвалг

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

    Spritz 20 апреля 2010 г. 16:47, спустя 15 часов 8 минут 38 секунд

    интересную хуйню я вчера сморозил. Получается я хочу вставлять записи через Zend_Db_Select.

    $connection = Mage::getSingleton('core/resource')->getConnection('core_write');
  • Абырвалг

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

    Spritz 20 апреля 2010 г. 18:06, спустя 1 час 19 минут 20 секунд

    бредятина нечитаемая

    while (/* … */) {
    $stmt[] = '(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
    $dataToInsert = array_merge($dataToInsert, $feedback); // $feedback - список
    }

    $sql = '
    INSERT INTO `' . $tableName . '` (`f1`, `f2`)
    VALUES ' . implode(', ', $stmt);
    $connection->query($sql, $dataToInsert);

  • NRG

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

    Spritz 20 апреля 2010 г. 18:09, спустя 2 минуты 21 секунду

    Абырвалг, это что такое ?? =)
  • Абырвалг

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

    Spritz 20 апреля 2010 г. 18:10, спустя 1 минуту 19 секунд

    а как бы это было через BL_Database:

    while (/* … */) {
     $data = $this->db->prepare('(?i, ?s)', $integer, $string);
    }

    $this->db->query('INSERT INTO :table_name (f1, f2) VALUES' . implode(', ' $data));
    Спустя 45 сек.
    # это
    INSERT INTO `t1` (`f`, `f1`) VALUES (?, ?), (?, ?), (?, ?)

    # вместо
    INSERT INTO `t1` (`f`, `f1`) VALUES (?, ?)
    INSERT INTO `t1` (`f`, `f1`) VALUES (?, ?)
    INSERT INTO `t1` (`f`, `f1`) VALUES (?, ?)
  • phpdude

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

    Spritz 20 апреля 2010 г. 18:18, спустя 8 минут 11 секунд

    а как бы это было через BL_Database:


    с виду та же хуета

    а какбы через SqlBuilder (зырь в баттлы)


    $insert = SqlBuilder::create(SQL_INSERT, "users");
    foreach($users as $user_data)
    {
    $insert->username = $user_data['username'];
    $insert->password = $user_data['password'];

    $insert->next();
    }

    $sql = $insert->build();
    Сапожник без сапог

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