Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF]insertowanie kilku wierszy naraz
Forum PHP.pl > Forum > PHP > Frameworki
johnyMajster
Witam
W zwykłym sqlu można w jednym zapytaniu insert dodac kilka wartosci. W ZF natomiast trzeba kazdy wiersz dodawac pojedynczo w pętli. Czy to przypadkiem nie wychodzi na to samo?? Np pod względem czasowym??
droslaw
Nie wychodzi na to samo. Insertowanie pojedyńczo jest wolniejsze. Kiedy bazę danych obsługiwałem jeszcze w Zend_Db, pisałem funkcje, które budują odpowiednie zapytanie.
Np:
  1. public function insertMany($rows){
  2. $dbAdapter = $this->getAdapter();
  3. $query = 'INSERT INTO `categories_news` (`category_id`, `news_id`) VALUES ';
  4. $preparedRows = array();
  5. foreach($rows as $row){
  6. foreach($row as &$column){
  7. $column = $dbAdapter->quote($column);
  8. }
  9. $preparedRows[] = '('.implode(',', $row).')';
  10. }
  11. $dbAdapter->query($query. implode(',', $preparedRows).';');
  12. }

Może istnieje jakieś lepsze rozwiązanie. Ja używałem takiego.
skowron-line
@droslaw bądz PRO zamist
Kod
foreach($row as &$column){
$column = $dbAdapter->quote($column);
}

daj array_map
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.