Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
ось, и применяет соответствующие действия 
по корректировке (вызывает нужные команды SQL). 
r Поддерживается одно автоинкрементное поле с именем id, которое автоматиче- 
ски проставляется у записи при ее добавлении в таблицу. Указывать его в списке 
несущих полей не надо. 
r Имеется набор стандартных операций, которые можно производить с таблицей: ее 
создание и удаление, вставка новой записи, обновление записи, удаление записей, 

выборка указанного числа записей с сортировкой. Кроме того, поддерживаются 
дополнительные операции, такие как подсчет числа записей, удовлетворяющих 
запросу, и получение всех уникальных значений в указанном столбце таблицы. 
r Для каждой таблицы можно хранить один дополнительный блок информации лю- 
бой структуры (например, это может быть даже многомерный ассоциативный 
массив). Выборка и запись этого блока осуществляются методами GetInfo() и 
SetInfo(). Блок информации нельзя получить никак иначе, кроме как посредст- 
вом этих двух функций (он "не виден" даже для функции выборки). 
r Для убыстрения работы программист может назначить для тех или иных столбцов 
таблицы режим индексирования (при использовании индекса MySQL тратит зна- 
чительно меньше времени на поиск данных). Индексы, как и несущие поля, встав- 
ляются и удаляются автоматически при изменении параметров вызова конструк- 
тора. Помните, что хотя они и убыстряют работу, но зато занимают на диске 
довольно много места. 
У этого класса есть один небольшой недостаток, который заставляет применять его 

аккуратно. Так как количества и размеры полей при вставке могут быть любыми, то 

злоумышленник может быстро "забить" таблицу разного рода "мусором". Например, 
если таблица используется как хранилище для гостевой книги, то он может видоиз- 

менить форму отправки сообщения и вставить туда какое-нибудь текстовое поле, 
предварительно поместив в него пару мегабайтов текста. Чтобы избежать этой 
потен- 
циальной "дыры" в защите, рекомендуется перед вставкой записи в таблицу прове- 
рять, какой объем она занимает в сериализованном виде, и в случае превышения 
оп- 
ределенного числа байтов выводить предупреждение и завершать сценарий по die(). 

Думаю, читатель сам без труда добавит такую возможность в свои сценарии или же 
прямо в класс MysqlTable. 
Согласитесь, не так уж и мало для каких-то четырехсот строчек кода.….. Листинг 
31.2 представляет собой исходный текст библиотеки, реализующей наш класс. Она 
предполагает, что соединение с MySQL уже открыто и выбрана верная текущая база 
данных. 

Глава 31. Объектно-ориентированное программирование на PHP 467 
Листинг 31.2. Полноценный класс MySQL-таблицы 

		
 
<<-[Весь Текст]
Страница: из 287
 <<-