Просмотр полной версии : Установка бд на php
Подскажите как написать простейший установочник баз mysql на php(типо того что в Joomla (начало установки портала))
Ну так посмотри как там реализовано, там ничего сложного нету.
Задаешь инфу для подключения => предварительно чистишь базу => создаешь нужные таблицы. Все делается стандартными функциями для работы с бд.
Прикол не в этом. Алгоритм то понятен.
Делаем дамп готовой таблицы в SQL файл. В ПШП просто подключаем его и гоним в mysql_query. Но хочется, что бы пшп парсил sql файл и делал запросы отдельно от остальных. А если они будут отдельно, то сможем напротив допустим выводить, удачно ли произошло выполнение. Знаю, есть классы готовые.
Я не ТС, просто предположил.
SolkerПримерно это и требуется. Есть готовый дамп таблиц мини портала, меня интересует как конкретно, а точнее наиболее правильно сделать данное подключение SQl файла в php, и сам процесс установки этих таблиц непосредственно в базу...
Подсмотрел в этом проекте:
http://softtime.ru/info/ortus.php?down=ortus1-0.zip
//вставляем дамп
$dump = file_get_contents("dump.sql");
$dump = explode("#is_separator", $dump);
$cnt = count($dump);
for($i = 0; $i < $cnt; $i++)
{
if(!empty($dump[$i]))
{
$dump[$i] = str_replace("CREATE TABLE `", "CREATE TABLE `{$s_db_prefix}", $dump[$i]);
$dump[$i] = str_replace("INSERT INTO `", "INSERT INTO `{$s_db_prefix}", $dump[$i]);
$res = mysql_query($dump[$i], $db1);
if($i != 0)
if(!$res)
$errors[] = "{$l_install[8]} {$dump[$i]} <br>".mysql_error();
}
}
И дамп:
SELECT VERSION();
#is_separator
CREATE TABLE `menu` (
`id_menu` int(32) NOT NULL auto_increment,
`title` tinytext,
`disposition` enum('vertical','horizontal') default NULL,
`separator` tinytext NOT NULL,
`pos` int(11) default NULL,
PRIMARY KEY (`id_menu`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
#is_separator
INSERT INTO `menu` (`id_menu`, `title`, `disposition`, `separator`, `pos`) VALUES
(3, 'Верхнее меню', 'horizontal', ' | ', 1);
#is_separator
CREATE TABLE `menu_items` (
`id_item` int(32) NOT NULL auto_increment,
`caption` tinytext,
`url` tinytext,
`pos` int(11) default NULL,
`id_menu` int(11) default NULL,
`id_item_prec` tinytext,
PRIMARY KEY (`id_item`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=34 ;
etc..
Я примерно понял что к чему, большое пасибо Solker. тему думаю моно и закрыть.Ещё раз спасибо за участие.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot