Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PDO - bindValue oraz fetchAll
Forum PHP.pl > Forum > PHP
mhs
Witam, mam taki problem: przy pobieraniu danych z wykorzystaniem pdo otrzymuję wszystkie ukośniki (tzn: \" zamiast "), które są dodawane do bazy danych przy insercie. Robię to w sposób następujący (oczywiście fragmenty kodu):

  1.  
  2. // 1 dodaje
  3.  
  4. $q = $this->db->prepare('INSERT INTO help (category) VALUES (:category)');
  5. $q->bindValue('category', $this->category);
  6. $q->execute();
  7.  
  8. // 2 pobieram
  9.  
  10. $q = $this->db->prepare('SELECT category FROM help WHERE category = :category');
  11. $q->bindValue('category', $this->category);
  12. $q->execute();
  13. return $q->fetchAll(PDO::FETCH_ASSOC);
  14.  


Co robię źle (proszę tylko nie bić). Oczywiście nie chce tutaj robić pętli i następnie jechać stripslashes bo to bez sensu.

Pozdrawiam, mhs.
tvister
Z PDO nie miałem takiego problemu więc w twoim przypadku może wina leży bo stronie magic_quotes.
zegarek84
po pierwsze to źle stosujesz PDO->bindValue i służy ono do odpytywania bazy [dokładniej do wstawiania określonych wartości do różnego typu zapytania]... jeśli trzeba PDO samo doda slashe:
Prepared statements and stored procedures
Cytat
The parameters to prepared statements don't need to be quoted; the driver automatically handles this. If an application exclusively uses prepared statements, the developer can be sure that no SQL injection will occur (however, if other portions of the query are being built up with unescaped input, SQL injection is still possible).


bardzo prawdopodobne, iż miałeś na myśli PDO->bindColumn a w zasadzie powinienem napisać PDOStatement->bindColumn...

w kodzie który podałeś są błędy - przede wszystkim nie:
$q->bindValue('category', $this->category);
a:
$q->bindValue(':category', $this->category);
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.