Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Objektówka, niby brak błędów a nie działa
primo
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Strzegom

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


Witam,

próbuję zrozumieć działanie prostego skryptu pobierającego dane z bazy, niby błędy nie wyskakują (nawet jak coś celowo usunę z kodu i powinno je pokazać)

  1. <?php
  2. require_once(&#092;"BD.class.php\");
  3.  
  4. class Widget {
  5. private $id;
  6. private $name;
  7. private $description; 
  8. private $bd;
  9. private $needsUpdating = false;
  10.  
  11.  
  12. public function _construct($widgetID){
  13.  
  14. $bd = new BD;
  15.  
  16. if (!$bd->otworz()) {
  17. die ($bd->blad());
  18. }
  19.  
  20. if (!$bd->zapytaj(&#092;"SELECT \"nazwa\", \"opis\" FROM artykul WHERE nr_artykulu = $widgetID\")) {
  21. die ($db->error());
  22. }
  23.  
  24. if (!pobierzTablice) {
  25. throw new Exception ('Szukanego artykułu nie ma w bazie !');
  26. }
  27.  
  28. $bd->pobierzTablice();
  29.  
  30. $data->pobierzTablice();
  31. $this->id = $widgetID;
  32. $this->name = $data['nazwa'];
  33. $this->description = $data['opis'];
  34. }
  35.  
  36. public function getName() {
  37. return $this->name;
  38. }
  39.  
  40. public function getDescription() {
  41. return $this->description;
  42. }
  43.  
  44. public function setName($name) {
  45. $this->name = $name;
  46. $this->needsUpdating = true;
  47. }
  48.  
  49. public function setDescription($description) {
  50. $this->description = $description;
  51. $this->needUpdating = true;
  52. }
  53.  
  54. public function _destruct () {
  55. if (! $this->needsUpdating){
  56. return;
  57. }
  58.  
  59. $bd = 'UPDATE \"artykul\" SET';
  60. $bd.= &#092;"\"nazwa\" = '\" .msql_escape_string($this->name) . \"', \";
  61. $bd.= &#092;"\"opis\" = '\" .msql_escape_string($this->description) . \"' \";
  62. $bd.= &#092;"WHERE nr_artykulu = \" .$this->id;
  63.  
  64. }
  65.  
  66. }
  67. ?>


  1. <?php
  2. require_once('class.Widget.php');
  3.  
  4. try {
  5. $objWidget = new Widget (1);
  6.  
  7. print &#092;"Nazwa artykułu: \" .$objWidget->getName() .\"<br>n\";
  8. print &#092;"Opis artykułu: \" .$objWidget->getDescription() . \"<br>n\";
  9.  
  10. $objWidget->setName ('Trampki');
  11. $objWidget->SetDescription ('Trampki o dużym przebiegu !');
  12. } catch (Exception $e) {
  13. die (&#092;"Wystąpił problem: \" .$e->getMessage());
  14. }
  15. ?>


jak odpalę ten drugi skrypt to pokazuje mi tylko w przeglądarce:
Nazwa artykułu:
Opis artykułu:

nic poza tym.

macie jakieś pomysły ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
primo
post
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Strzegom

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


no bez przesady, przecież jest powyżej kod z zapytaniem select.

dopisałem jeszcze:

  1. <?php
  2. if (!$sql = $bd->zapytaj(&#092;"UPDATE artykul SET nazwa = '$this->name', opis = '$this->description' WHERE nr_artykulu = $this->id\")) {
  3. die ($bd->blad());
  4. }
  5.  
  6. $rs = $bd->zapytaj($this->bd, $sql);
  7. if(! is_resource($rs)) {
  8. throw new Exception('Wystąpił błąd podczas aktualizacji bazy danych');
  9. }
  10.  
  11. $bd->zamknij($this->bd);
  12. ?>


Cytat
escapowanie: mysql_escape_string


jak teraz zescapuje to zapytanie to czy przypadkiem nie wyskoczy błąd że mój obiekt BD tego nie obsługuje (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 02:50