ФорумПрограммированиеPHP для идиотов → Mysql Fulltext Search

Mysql Fulltext Search

  • kostyl

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

    Spritz 26 мая 2011 г. 16:28, спустя 11 минут 51 секунду

    NRG, может лучше утфом хранить \u234
  • Абырвалг

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

    Spritz 26 мая 2011 г. 16:31, спустя 3 минуты 7 секунд

    creeonix, магента не завязана жестко на мускл.
    она поддерживает и другие субд.

    да неужели?

        /**
    * Inserts a table multiply rows with specified data.
    *
    * @param mixed $table The table to insert data into.
    * @param array $data Column-value pairs or array of Column-value pairs.
    * @return int The number of affected rows.
    */
    public function insertMultiple($table, array $data)
    {
    $row = reset($data);
    // support insert syntaxes
    if (!is_array($row)) {
    return $this->insert($table, $data);
    }

    // validate data array
    $cols = array_keys($row);
    $insertArray = array();
    foreach ($data as $row) {
    $line = array();
    if (array_diff($cols, array_keys($row))) {
    throw new Varien_Exception('Invalid data for insert');
    }
    foreach ($cols as $field) {
    $line[] = $row[$field];
    }
    $insertArray[] = $line;
    }
    unset($row);

    return $this->insertArray($table, $cols, $insertArray);
    }

    /**
    * Insert array to table based on columns definition
    *
    * @param string $table
    * @param array $columns
    * @param array $data
    * @return int
    */
    public function insertArray($table, array $columns, array $data)
    {
    $vals = array();
    $bind = array();
    $columnsCount = count($columns);
    foreach ($data as $row) {
    if ($columnsCount != count($row)) {
    throw new Varien_Exception('Invalid data for insert');
    }
    $line = array();
    if ($columnsCount == 1) {
    if ($row instanceof Zend_Db_Expr) {
    $line = $row->__toString();
    } else {
    $line = '?';
    $bind[] = $row;
    }
    $vals[] = sprintf('(%s)', $line);
    } else {
    foreach ($row as $value) {
    if ($value instanceof Zend_Db_Expr) {
    $line[] = $value->__toString();
    }
    else {
    $line[] = '?';
    $bind[] = $value;
    }
    }
    $vals[] = sprintf('(%s)', join(',', $line));
    }
    }

    // build the statement
    $columns = array_map(array($this, 'quoteIdentifier'), $columns);
    $sql = sprintf("INSERT INTO %s (%s) VALUES%s",
    $this->quoteIdentifier($table, true),
    implode(',', $columns), implode(', ', $vals));

    // execute the statement and return the number of affected rows
    $stmt = $this->query($sql, $bind);
    $result = $stmt->rowCount();
    return $result;
    }


    а какие еще субд поддерживают вставку insert into foo (a, b) values (1, 2), (3, 4)?
    1. orly.PNG (45)
  • phpdude

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

    Spritz 26 мая 2011 г. 16:36, спустя 4 минуты 37 секунд

    Абырвалг, ты мне начинаешь нравиться :-))

    давай, тащи, я за кофе
    Сапожник без сапог
  • kostyl

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

    Spritz 26 мая 2011 г. 16:38, спустя 1 минуту 53 секунды

    давай, тащи, я за кофе

    :D
  • NRG

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

    Spritz 26 мая 2011 г. 17:21, спустя 43 минуты 3 секунды

    Абырвалг, прошу прощения, этот билд еще не вышел.
    сейчас он уже готов и с коро его увидит мир.
    я просто к нему привык, так как у нас в транке он уже есть давненько, и мне на чуток показалось что уже это есть в паблике.
  • creeonix

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

    Spritz 31 мая 2011 г. 7:34, спустя 4 дня 14 часов 13 минут

    NRG, если мне не изменяет память, то у вас на собеседованиях задают вопросы только по MySQL.
    Мало того, система именно заточена под работу с MySQL, если бы это было не так, было бы более полное использование возможностей современных SQL движков. Часть того, что вы делаете в коде было бы _разумно_ вынести на сторону SQL-сервера.

    PS: Я в старых билдах видел драйвера для других баз данных, но как я понимаю никто и никогда ими не пользовался.
  • NRG

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

    Spritz 31 мая 2011 г. 8:53, спустя 1 час 18 минут 36 секунд

    NRG, если мне не изменяет память, то у вас на собеседованиях задают вопросы только по MySQL.

    смотря в какой отдел и на какую должность тебя берут.

    Мало того, система именно заточена под работу с MySQL, если бы это было не так, было бы более полное использование возможностей современных SQL движков.

    спасибо Кэп.
    я уже писал выше о том, что скоро выйдет новый билд, который не будет ограничиваться совместимостью лишь с одной СУБД.
  • dallone

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

    Spritz 31 мая 2011 г. 8:57, спустя 3 минуты 52 секунды

    а какие еще субд поддерживают вставку insert into foo (a, b) values (1, 2), (3, 4)?

    PostgreSQL?
    о_О

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