Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodanie w pętli wartości do bazy używając PDO
Calibri
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 4
Dołączył: 22.07.2011

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


Witam.

Dziś chciałem się zapytać o pewną rzecz. Bo chcę zrobić system dodający `tagi`. Korzystam z PDO.

Jako parametr funkcji przekazuję tablicę którą wcześniej stworzyłem za pomocą explode rozdzielając wyrazy spacjami.

Czy lepiej jest tak (sposób 1):
  1. public function InsertTags( $tags )
  2. {
  3. $stmt = $this->db->prepare( 'INSERT INTO tags SET name = :name' );
  4. foreach ( $tags as $tag )
  5. {
  6. $stmt->bindValue( ':name', $tag, PDO::PARAM_STR );
  7. $stmt->execute();
  8. }
  9. }


czy tak (sposób 2):
  1. public function InsertTags( $tags )
  2. {
  3. $stmt = $this->db->prepare( 'INSERT INTO tags SET name = :name' );
  4. foreach ( $tags as $tag )
  5. {
  6. $stmt->execute( array( ':name' => $tag ) );
  7. }
  8. }


--[ Słowo `lepiej` znaczy tu optymalniej lub wygodniej ]--

A gdybym musiał dodać do bazy większą ilość danych, nie tylko sam `name` ale np: `param1`, `param2`, `param3`, .... , to który sposób zastosować ? Który sposób (pierwszy czy drugi) wg was się nadaje ? A może oba mogę spokojnie użyć (bo oba działają, ale o zapis mi chodzi) a tylko ja marudzę ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Jeżeli wszystkie parametry mają być traktowane jako wartości tekstowe (PDO::PARAM_STR) to oba kody są właściwie jednoznaczne i nie ma znaczenia, której metody użyjesz.
Go to the top of the page
+Quote Post
Calibri
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 4
Dołączył: 22.07.2011

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


Aha. Rozumiem. No ale gdybym miał wartości INT, to jednak któryś sposób ma znaczenie- chyba.
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: 24.08.2025 - 18:32