PHP 5 для начинающих |
Страница 509 из 813 $sql = "UPDATE entities SET "; //Сформируем SQL-оператор, создав //массив SET-операторов, а затем объединив элементы этого массива, //разделяя их запятыми. $setStatements = array(); foreach($this->_changedProperties as $prop) { $setStatements[] = "$prop = '{$this->_properties[$prop]}'"; } //формируем строку $sql .= join(', ', $setStatements); //присоединяем предложение WHERE $sql .= " WHERE entityid = $this->id"; print $sql; $hRes = mysql_query($sql, $this->hDB); $intAffected = mysql_affected_rows($hRes); } function _createEntity() { $data = array(); $data['name1'] = ..... . mysql_escape_string($this->name1) . .....; $data['name2'] = ..... . mysql_escape_string($this->name2) . .....; $data['type'] = ..... . mysql_escape_string($this->type) . .....; $sql = "INSERT INTO entities (" . join(',' array_keys($data)). ") "; $sql .= " (" . join(', ', array_values($data)) . ")"; $res = mysql_query($sql, $this->hDB); if (!$res) { //Обратите внимание, невозможно перехватить исключение, сгенерированное //в деструкторе (деструктор вызывает эту функцию), поэтому // придется использовать trigger_error для сообщения о проблеме. trigger_error("Во время сохранения объекта возникла ошибка!", E_USER_WARNING); } } function _destruct() { //Проверка наличия изменений. if(sizeof($this->_changedProperties)) { if($this->id) { //обновляется существующая запись; $this->_updateEntity(); } else { //создается новая запись $this->_createEntity(); } } //Работа окончена, закрываем соединение с базой данных. mysql_close($this->_hDB); } } ?> Чтобы создать MySQL-таблицу entities, следует ввести следующий SQL-оператор: C REATE TABLE entities ( entityid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name1 varchar(100) NOT NULL, |