Перед созданием новой темы, пожалуйста, ознакомьтесь с FAQ по LinkorCMS
<?
// Создаёт таблицу<br />
public function CreateTable($name, $query, $dropex = fal
se){<br />
$this->StartQ('Database->CreateTable()');<br />
$sql = 'CREATE TABLE `'.$this->Prefix().$name.'` ('."\n";<br />
for($i = 0; $i < count($query['cols']); $i++){<br />
$sql .= $this->CollToSql($query['cols'][$i]);<br />
if(isset($query['cols'][$i]['index'])){<br />
$temp = ' INDEX `' . $query['cols'][$i]['name'] . '` (`' . $query['cols'][$i]['name'] . '`)';<br />
if(isset($keys)){<br />
$keys .= ',' . "\n" . $temp;<br />
}else{<br />
$keys = $temp;<br />
}<br />
}<br />
elseif(isset($query['cols'][$i]['unique'])){<br />
$temp = ' UNIQUE KEY `' . $query['cols'][$i]['name'] . '` (`' . $query['cols'][$i]['name'] . '`)';<br />
if(isset($unique)){<br />
$unique .= ',' . "\n" . $temp;<br />
}else{<br />
$unique = $temp;<br />
}<br />
}<br />
elseif(isset($query['cols'][$i]['fulltext'])){<br />
$temp = ' FULLTEXT KEY `' . $query['cols'][$i]['name'] . '` (`' . $query['cols'][$i]['name'] . '`)';<br />
if(isset($fulltext)){<br />
$fulltext .= ',' . "\n" . $temp;<br />
}else{<br />
$fulltext = $temp;<br />
}<br />
}<br />
unset($temp);<br />
if($i < count($query['cols']) - 1){<br />
$sql .= ',' . "\n";<br />
}<br />
}<br />
if(!empty($query['primary'])) $sql .= ",\n" . ' PRIMARY KEY (`' . $query['primary'] . '`)' . "\n";<br />
if(isset($unique)) $sql .= ",\n" . $unique . "\n";<br />
if(isset($keys)) $sql .= ",\n" . $keys . "\n";<br />
if(isset($fulltext)) $sql .= ",\n" . $fulltext . "\n";<br />
<br />
$sql .= ')';<br />
$sql .= !empty($query['type']) ? ' ENGINE=' . $query['type'] : ' ENGINE=MYISAM';<br />
if(!empty($query['comment'])) $sql .= ' COMMENT="' . $query['comment'] . '"';<br />
$sql .= ' DEFAULT CHARSET=cp1251 COLLATE=cp1251_gene
ral_ci;' . "\n\n";<br />
<br />
// выполняем запрос<br />
if($dropex){<br />
$this->DropTable($name);<br />
}<br />
if($this->MySQLQuery2($sql, 'Ошибка при создании таблицы.')){<br />
return true;<br />
}else{<br />
return false;<br />
}<br />
}
?>
Быстрый переход: |
---|