Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF]insertowanie kilku wierszy naraz
johnyMajster
post
Post #1





Grupa: Zarejestrowani
Postów: 151
Pomógł: 2
Dołączył: 2.08.2012
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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??

Ten post edytował johnyMajster 10.09.2012, 00:59:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
droslaw
post
Post #2





Grupa: Zarejestrowani
Postów: 98
Pomógł: 33
Dołączył: 10.05.2011
Skąd: Krak

Ostrzeżenie: (0%)
-----


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.

Ten post edytował droslaw 10.09.2012, 09:37:43
Go to the top of the page
+Quote Post
skowron-line
post
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


@droslaw bądz PRO zamist
Kod
foreach($row as &$column){
$column = $dbAdapter->quote($column);
}

daj array_map

Ten post edytował skowron-line 10.09.2012, 10:05:02
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 07:35