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

Mysql Fulltext Search

  • kostyl

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

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

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

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

    Spritz 26 мая 2011 г. 13: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

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

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

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

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

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

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

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

    :D
  • NRG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    PostgreSQL?
    о_О

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