Форум → Программирование → PHP для идиотов → Mysql Fulltext Search
Mysql Fulltext Search
Страницы: ← Предыдущая страница →
-
-
27 мая 2011 г. 0: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)? -
27 мая 2011 г. 0:36, спустя 4 минуты 37 секунд
Абырвалг, ты мне начинаешь нравиться :-))
давай, тащи, я за кофеСапожник без сапог -
-
27 мая 2011 г. 1:21, спустя 43 минуты 3 секунды
Абырвалг, прошу прощения, этот билд еще не вышел.
сейчас он уже готов и с коро его увидит мир.
я просто к нему привык, так как у нас в транке он уже есть давненько, и мне на чуток показалось что уже это есть в паблике. -
31 мая 2011 г. 15:34, спустя 4 дня 14 часов 13 минут
NRG, если мне не изменяет память, то у вас на собеседованиях задают вопросы только по MySQL.
Мало того, система именно заточена под работу с MySQL, если бы это было не так, было бы более полное использование возможностей современных SQL движков. Часть того, что вы делаете в коде было бы _разумно_ вынести на сторону SQL-сервера.
PS: Я в старых билдах видел драйвера для других баз данных, но как я понимаю никто и никогда ими не пользовался. -
31 мая 2011 г. 16:53, спустя 1 час 18 минут 36 секунд
NRG, если мне не изменяет память, то у вас на собеседованиях задают вопросы только по MySQL.
смотря в какой отдел и на какую должность тебя берут.Мало того, система именно заточена под работу с MySQL, если бы это было не так, было бы более полное использование возможностей современных SQL движков.
спасибо Кэп.
я уже писал выше о том, что скоро выйдет новый билд, который не будет ограничиваться совместимостью лишь с одной СУБД. -
31 мая 2011 г. 16:57, спустя 3 минуты 52 секунды
а какие еще субд поддерживают вставку insert into foo (a, b) values (1, 2), (3, 4)?
PostgreSQL?о_О
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!