САМОУЧИТЕЛЬ PHP 4



         

Полноценный класс таблицы MySQL - часть 4


var $UniqVars; // список уникальных полей (имя=1, имя=1...)

var $Index; // для этих полей построены индексы (имя=1, имя=1...)

var $Fields; // все физические поля таблицы (имя=тип, имя=тип...)

var $Error; // текст последней ошибки ("", если нет)

var $JustCreated; // 1, если таблица была создана, а не загружена

//*** Внутренние функции

// Упаковывает поля массива в строку, за исключением тех, которые

// сами являются непосредственными полями в базе данных.

function _PackFields(&$Hash)

{ $Data=array();

 foreach($Hash as $k=>$v) if($k!=DataField)

 if(!isSet($this->Fields[$k])) $Data[$k]=$v;

 return Serialize($Data);

}

// Виртуальная функция производного класса вызывается ПЕРЕД любым

// занесением данных в таблицу (добавлением и обновлением). То есть

// она предназначена для "прозрачной" автоматической генерации некоторых

// полей записи (например, времени ее изменения) в производном классе

// перед ее сохранением.

// Можно, к примеру, в таблице держать какую-нибудь дату в формате

// SDN, а "делать вид", что она хранится в обычном представлении

// "дд.мм.гггг".

// Если эта функция возвратит 0, то операция закончится с ошибкой.

function PreModify(&$Rec) { return 1; }

// Виртуальная функция вызывается ПОСЛЕ выборки записи из таблицы, а

// также в конце модификации записи. То есть она предназначена для

// "прозрачной" модификации только что полученной из таблицы записи.

// Возвращаясь к предыдущему примеру, мы можем при извлечении записи

// из таблицы STM-поле преобразовать в "дд.мм.гггг", и "никто ничего

// не заметит".

function PostSelect(&$Rec) { return; }

// Возвращает имя таблицы

function GetTableName() { return $this->TableName; }

// Возвращает результат запроса select. В дальнейшем этот результат

// (дескриптор) будет, скорее всего, обработан при помощи GetResult().

// $Expr — выражение SQL, по которому будет идти выборка

// $Order — правила сортировки (по умолчанию — по убыванию id)




Содержание  Назад  Вперед