Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Multi-insert + bindowanie, PDO
--kamil_lk--
post
Post #1





Goście







Cześć.

W jaki sposób mogę sobie przebindować mojego inserta, który ma postać:

  1. INSERT INTO `table_name`(`id`, `id_a`, `id_b`) VALUES ('1', '1', '1'), ('2', '2', '2'), ('3', '3', '3')
Go to the top of the page
+Quote Post
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


Już się nie męcz, masz, "przebindowałem" Ci:
(IMG:http://oi61.tinypic.com/29pd8k3.jpg)
A poważnie, to może byś napisał o co dokładniej chodzi, PDO? Zwyczajne podstawianie?
Go to the top of the page
+Quote Post
--kamil_lk--
post
Post #3





Goście







mam tablicę id_b, która przechowuje wartości jak poniżej
  1. [0] => 1,
  2. [1] =>2,
  3. [2] => 3
  4. )


oraz mam metodę, która wstawia mi dane do tabeli
  1. public function addObjectToUser($id_user, $id_flows)
  2. {
  3. $query = "INSERT INTO `table_name`(`id_a`, `id_b`, `id_c`) VALUES ";
  4. foreach($id_b as $value){
  5. $query .= "('".$id_a."', '".$value."', '1'),";
  6. }
  7. $query = substr($query, 0, -1);
  8. $result = $this->pdo->exec($query);
  9. die();
  10. }


W przypadku, gdy id_b nie jest tablicą tylko jakąś wasrtością to bez problemu mogę sobie bindować zapytanie w sposób podany poniżej.
  1. $query = "INSERT INTO `table_name`(`id_a`, `id_b`, `id_c`) VALUES (:id_a, :id_b, 1)";
  2. $result = $this->pdo->prepare($query);
  3. $result->bindValue(':id_a', $id_a, PDO::PARAM_INT);
  4. $result->bindValue(':id_b', $id_b, PDO::PARAM_INT);
  5. $result->execute();


W jaki sposób mogę przebinować wartości w moim przykładzie, gdzie id_b jest tablicą?
Go to the top of the page
+Quote Post
--kamil_lk--
post
Post #4





Goście







w powyższym przykłądzie ma być oczywiście
  1. public function addObjectToUser($id_a, $id_b)
Go to the top of the page
+Quote Post
Turson
post
Post #5





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


W pętli możesz przebindować
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: 23.08.2025 - 05:09