Архив рассылки -программирование на PHP




Продолжаем разговор



"Продолжаем разговор..."(с)

Если я ничего не путаю, то мы приготовили данные для того, чтобы добавить их в базу нашего сайта.

Just do it!..
function in_text_add() { // Проверяем данные для БД $err=$this->in_text_data_check(); if($err) return($err); // Адаптируем текст для сохранения $err=$this->in_text_adapt(); if($err) return($err); // Сначала заносим в базу данные $this->sql_query="insert into tbl_texts(t_name, t_cat, t_cat) values('".$this->in_text_name."', now(), '".$this->in_text_cat."')"; $this->sql_execute(); if($this->sql_err) return(11); // Получаем сгенерированный базой ID добавленного текста $this->sql_query="select last_insert_id"; $this->sql_execute(); if($this->sql_err) return(11); list($this->in_text_id)=mysql_fetch_row($this->sql_res); // Теперь пишем текст в директорию data, в файл с номером ID if($w=fopen($this->PATH_DATA."/".$this->in_text_id,'w')) { fwrite($w,$this->in_text); fclose($w); } else { $this->sql_query="delete from tbl_texts where t_id='".$this->in_text_id."'"; $this->sql_execute(); return(31); } return(0); } Интересно, мы напишем хоть одну сложную функцию в нашем проекте, или нет?

Итак. Зачитываю собственные комментарии.

Вызываем функцию проверки данных для БД и функцию адаптации текста. Если одна из них вернет ошибку, то мы останавливаемся с возвратом этой самой ошибки.

Заносим в БД новую запись: название текста, дату, номер рубрики.

Помните, как в таблице было декларировано поле t_id? Оно было декларировано как auto_increment. А это значит, что при добавлении новой записи содержимое этого поля определяется автоматически -- плюс один к последнему добавленному в базу значению этого поля.

Вот нам это самое число и надо выдернуть из базы. Это же уникальный идентификатор добавленного текста! Он вполне может служить нам и уникальным именем файла для хранения текста на диске.

В этом нам поможет SQL-запрос select last_insert_id.









Начало        Вперед




Книжный магазин