}
function SetInfo($Inf) { return $this->TableSetInfo(&$Inf); }
// Возвращает информацию о таблице, ранее занесенную в нее при помощи
// SetInfo. Если информация не была занесена, возвращает пустой массив.
function TableGetInfo()
{ $this->Error="";
// Читаем информационную запись
$r=mysql_query("select * from ".$this->TableName." where id=1");
// Если что-то не в порядке, GetResult установит поле Error у объекта
if(!($Data=$this->GetResult($r))) return array();
if(!@is_array($Data["Info"])) $Data["Info"]=array();
return $Data["Info"];
}
function GetInfo() { return $this->TableGetInfo(); }
// Уничтожает таблицу. Осторожно! Таблица удаляется без всяких
// предупреждений!!!
function TableDrop()
{ $this->Error="";
if(!mysql_query("drop table ".$this->TableName)) {
$this->Error=mysql_error();
return 0;
}
return 1;
}
function Drop() { return $this->TableDrop(); }
// Добавляет запись $Rec (обычно это ассоциативный массив с некоторыми
// установленными полями) в таблицу. Автоматически у нее проставляется
// id, а также проверяется, уникальны ли у записи те поля, которые должны
// быть уникальными (указываются в конструкторе). Возвращает 1 в случае
// успеха, при этом в $Rec содержится окончательно сформированная
// запись.
function TableAdd(&$Rec)
{ $this->Error="";
if(!$this->PreModify($Rec)) return 0;
// Иначе все в порядке. Добавляем запись.
$Rec[DataField]=$this->_PackFields($Rec);
// Составляем список имен полей и их значений
$LNames=$LVals=array();
foreach($this->Fields as $name=>$type) {
$LNames[]=$name;
$LVals[]="'".Apostrophs($Rec[$name])."'";
}
$LNames=implode($LNames,",");
$LVals=implode($LVals,",");
unSet($Rec[DataField]);
// Добавляем
if(!mysql_query("insert into ".$this->TableName.
"($LNames) values($LVals)"))