name = $_name; $this->email = $_email; $this->msg = $_msg; } public function GetName(){ return $this->name; } public function GetEmail(){ return $this->email; } public function GetMessage(){ return $this->msg; } } class GuestBookDB extends PDO { public function __construct($servername, $dbname, $username, $password) { try{ parent::__construct("mysql:host=$servername;dbname=$dbname;charset=UTF8", $username, $password); } catch (PDOException $e) { echo $e->getMessage(); } } // считываем данные запросом и возвращаем результат ввиде массива экземпляров GuestBook // удаляем id, так как он не входит в рамки GuestBook'а public function Select(){ $sqlQuery = "SELECT * FROM Comments"; $data = $this->prepare($sqlQuery); $data->execute(); $mode = $data->setFetchMode(PDO::FETCH_ASSOC); $data = $data->fetchAll(); $guestBookArray; $counter = 0; foreach ($data as $key => $value) { unset($data[$key]['id']); $guestBookArray[$counter] = new GuestBook($data[$key]['name'], $data[$key]['email'], $data[$key]['comment']); $counter++; } return $guestBookArray; } // в качестве $obj может прийти как экземпляр GuestBook, так и массив экземпляров GuestBook // написал условием, буду благодарен за совет, как сделать поддержку // и массива объектов и просто объекта по другому public function Insert($obj){ if (gettype($obj) == 'array') { foreach ($obj as $key => $value) { $name = $value->GetName(); $email = $value->GetEmail(); $msg = $value->GetMessage(); $sqlQuery = "INSERT INTO Comments (name, email, comment) VALUES('$name', '$email', '$msg')"; $this->exec($sqlQuery); } } else { $name = $obj->GetName(); $email = $obj->GetEmail(); $msg = $obj->GetMessage(); $sqlQuery = "INSERT INTO Comments (name, email, comment) VALUES('$name', '$email', '$msg')"; $this->exec($sqlQuery); } } //Максимальная длинна комментария 150 символов, email можно не указывать public function CreateTable(){ $sqlQuery = "CREATE TABLE Comments ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, email VARCHAR(30), comment VARCHAR(150) NOT NULL) CHARACTER SET utf8"; $this->exec($sqlQuery); } } ?> CreateTable(); $comment1 = new GuestBook('ДИМА', 'koldanst@hotmail.com', 'Hello, world!'); $comment2 = new GuestBook('ИВАН', 'shutovcorp@mail.ru','Sportive programming one love'); $comment3 = new GuestBook('АЗАМАТ', 'azamat@gmail.com','I want more money!'); $arrayOfComments = array($comment1, $comment2, $comment3); $test->Insert($comment1); $test->Insert($arrayOfComments); $result = $test->Select(); //вывод результатов для проверки и наглядности foreach ($result as $key => $value) { echo $result[$key]->GetName()."
"; echo $result[$key]->GetEmail()."
"; echo $result[$key]->GetMessage()."

"; } ?>