Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PDO - problem z wykonywaniem zapytań
Forum PHP.pl > Forum > PHP
symonides
Cześć, w czasie pisania skryptu natknąłem się na dość dziwnym przypadek. Kod prezentuje się następująco:
  1. public function addNews()
  2. {
  3. $stmt = $this->db->prepare("INSERT INTO `news` VALUES(null, ':author', ':title', ':content', ':date', ':public_date', ':source', ':display')");
  4.  
  5. $query = $stmt->execute(
  6. ':author' => $this->author,
  7. ':title' => $this->title,
  8. ':content' => $this->content,
  9. ':date' => $this->date,
  10. ':public_date' => $this->publicDate,
  11. ':source' => $this->source,
  12. ':display' => $this->display
  13. )
  14. );
  15.  
  16. if($query)
  17. {
  18. return true;
  19. }
  20.  
  21. else
  22. {
  23. return $stmt->errorInfo();
  24. }
  25. }


  1. $news = new News();
  2.  
  3. $news->setAuthor($author);
  4. $news->setTitle($title);
  5. $news->setContent($content);
  6. $news->setDate($date);
  7. $news->setPublicDate($publicDate);
  8. $news->setSource($source);
  9. $news->setDisplay($display);
  10.  
  11. $news->addNews();


Wynikiem zapytania jest:



Czy coś zrobiłem źle, bo ja nie dostrzegam żadnego błędu. Dodam, że korzystałem już z takiego sposobu i wszystko działa.

Gdy zapytanie wygląda "INSERT INTO `news` VALUES(null, '$this->author', '$this->title' ... " wszystko działa tak jak powinno.

Jeżeli ma to jakieś znaczenie: PHP 5.3.1, MySQL 5.1.41 - XAMPP.
nospor
http://pl2.php.net/manual/en/pdo.prepare.php
$sql = "SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour";
$sql="INSERT INTO `news` VALUES(null, ':author', ':title', ':content', ':date', ':public_date', ':source', ':display')";

Znajdź 10 różnic smile.gif Ale tak naprawdę chodzi tylko o jedną winksmiley.jpg
symonides
Nie mam zielonego pojęcia... ale zauważyłem, że wszystkie zapytania, które wybierają dane z bazy działają(SELECT) działają, a "obsługuje" je tak samo jak zapytania INSERT, które mnie nie chcą słuchać. Czyli ma to coś wspólnego z INSERT, ale w tym przykładzie http://pl2.php.net/manual/en/pdo.prepare.php#96544 jest to użyte podobnie jak w moim skrypcie, http://pl.wikibooks.org/wiki/PHP/Autoryzac...nie#Rejestracja tutaj też, tylko że ja nie korzystam z bindValue().

Nie chcę bezpośrednio przekazywać zmiennych do zapytania, bo w tedy nie będzie miało to sensu tongue.gif
Spawnm
:nazwa nie dajesz w ''
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.