Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [pdo] pobieranie nazwy kolumny
tomek_swat
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 3.04.2008

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


witam,
jak przekazać do funkcji bindValue nazwę kolumny, która pobierana jest z $_POST
  1. <?php
  2. $nr = 1;
  3. //$id = $_POST['id'];
  4. $query = $db->prepare("UPDATE produkt set :id = :value WHERE `IdProduktu` = :nr");
  5. $query->bindColumn(':id', $_POST['id'], PDO::PARAM_STR);
  6. $query->bindValue(':value', $_POST['value'], PDO::PARAM_STR);
  7. $query->bindValue(':nr', $nr, PDO::PARAM_INT);
  8.  
  9. $count = $query->execute();
  10. ?>


gdy zrobie tak, czyli wpiszę id na sztywno to wszystko działa, z tym, że muszę mieć możliwość update dowolnej kolumny

  1. <?php
  2. $nr = 1;
  3.  //$id = $_POST['id'];
  4.  $query = $db->prepare("UPDATE produkt set NazwaKolumny = :value WHERE `IdProduktu` = :nr");
  5. //$query->bindColumn(':id', $_POST['id'], PDO::PARAM_STR);
  6.  $query->bindValue(':value', $_POST['value'], PDO::PARAM_STR);
  7.  $query->bindValue(':nr', $nr, PDO::PARAM_INT);
  8.  
  9.  $count = $query->execute();
  10. ?>


proszę o pomoc, pozdrawiam
Go to the top of the page
+Quote Post
plurr
post
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


z tego co mi wiadomo to sie nie da, mozesz tylko bindowac wartosci.

  1. <?php
  2. $query = $db->prepare("UPDATE produkt set " . $_POST['id'] .  " = :value WHERE `IdProduktu` = :nr");
  3.  
  4. ...
  5. ?>


Ewentualnie zobacz jak wyglada Zend_Db, tam jest fajnie to rozwiazane.


--------------------
Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe.

Albert Einstein
Go to the top of the page
+Quote Post
tomek_swat
post
Post #3





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 3.04.2008

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


hmm no właśnie trochę niedopracowane mi się to wydaję pod tym względem
Go to the top of the page
+Quote Post
zegarek84
post
Post #4





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


sorki ale źle używasz - zerknij do manuala do przykładów i zobacz czym się różni:
PDOStatement->bindValue

PDOStatement->bindColumn

a tu może zauwazysz jak zestawię obok siebie:
$stmt->bindColumn('calories', $cals);
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);

POZDRO i na zaś szukaj nawet literówek ;]

Ten post edytował zegarek84 21.10.2008, 20:20:18


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
tomek_swat
post
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 3.04.2008

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


jak widać kombinowałem trochę z bindColumn ale nadal nie widzę w tym rozwiązania mojego problemu
  1. <?php
  2. $query = $db->prepare("UPDATE produkt set /*".$id."*/kolumna = :value WHERE `IdProduktu` = :nr");
  3. $query->bindColumn('kolumna', $id);
  4. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. $query = $db->prepare("UPDATE produkt set $_POST[nazwakolumny] = ? ...blabla");
  3. $query->execute(array($_POST['value']));
  4. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 22:51