Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PDO - problem z wykonywaniem zapytań
symonides
post 16.11.2010, 02:10:53
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 12.11.2010

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


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.

Ten post edytował symonides 16.11.2010, 02:12:04
Go to the top of the page
+Quote Post
nospor
post 16.11.2010, 07:31:01
Post #2





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




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


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

"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
symonides
post 16.11.2010, 14:55:34
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 12.11.2010

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


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
Go to the top of the page
+Quote Post
Spawnm
post 16.11.2010, 14:58:41
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




:nazwa nie dajesz w ''
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 Wersja Lo-Fi Aktualny czas: 17.06.2025 - 22:40