![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 13.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie! Przerabiam aktualnie książkę "PHP5 - zaawansowane programowanie", utknąłem już na początkowym przykładzie.
Skrypt przy użyciu funkcji __destruct() miał zastępować wpis w bazie PostgreSQL. Chciałem przerobić to na wersję z mySQL, jednakże utknąłem w pewnym momencie: $sql = 'UPDATE artykul SET' ; $sql .= 'nazwa = '.mysqli::escape_string($this->name); $sql .= 'opis = '.mysqli::escape_string($this->description); $sql .= 'WHERE nr_artykulu ='.$this->id; Z manuala PHP niewiele wyłapałem, po prostu nie wiem jak to ugryźć. Tutaj zarzucam całym kodem: CODE <meta charset="UTF-8">
<?php class Widget { private $id; private $name; private $description; private $hDB; private $needsUpdating = false; public function __construct($widgetID) { $this->hDB = new mysqli( 'localhost', 'root', '', 'php5' ); if (mysqli_connect_errno()) { printf("Brak połączenia z serwerem MySQL. Kod błędu: %s\n", mysqli_connect_error()); exit; } $sql = "SELECT nazwa, opis FROM artykul WHERE nr_artykulu = $widgetID"; $result = mysqli_query($this->hDB, $sql); if(!$result) { die('Nie można obsłużyć zapytania mysql_query!'); } if(!mysqli_num_rows($result)) { die('Szukanego artykułu nie ma w bazie!'); } $data = mysqli_fetch_array($result); $this->id = $iwdgetID; $this->name = $data["nazwa"]; $this->description = $data["opis"]; } public function getName() { return $this->name; } public function getDescription() { return $this->description; } public function setName($name) { $this->name = $name; $this->needsUpdating = true; } public function setDescription($description) { $this->description = $description; $this->needsUpdating = true; } public function __destruct() { if(!$this->needsUpdating) { return; } $sql = 'UPDATE artykul SET' ; $sql .= 'nazwa = '.mysqli::escape_string($this->name); $sql .= 'opis = '.mysqli::escape_string($this->description); $sql .= 'WHERE nr_artykulu ='.$this->id; $result = mysqli_query($this->hDB, $sqli); if(!$result) { die('Nie można zaktualiować bazy danych!'); } mysqli_close($this->hDB); } } try { $objWidget = new Widget(0); print 'Nazwa artykułu: '.$objWidget->getName()."<br>\n"; print 'Opis artykułu: '. $objWidget->getDescription()."<br>\n"; $objWidget->setName('Trampki'); $objWidget->setDescription('Trampki o dużym przebiegu!'); } catch (Exception $e) { die("Wystąpił problem: ".$e->getMessage()); } ?> Ten post edytował Remz 13.03.2015, 21:17:17 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:15 |