Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Установка бд на php (https://forum.antichat.xyz/showthread.php?t=173286)

AgS 24.01.2010 15:22

Установка бд на php
 
Подскажите как написать простейший установочник баз mysql на php(типо того что в Joomla (начало установки портала))

warlok 24.01.2010 18:03

Ну так посмотри как там реализовано, там ничего сложного нету.
Задаешь инфу для подключения => предварительно чистишь базу => создаешь нужные таблицы. Все делается стандартными функциями для работы с бд.

Solker 24.01.2010 19:23

Прикол не в этом. Алгоритм то понятен.
Делаем дамп готовой таблицы в SQL файл. В ПШП просто подключаем его и гоним в mysql_query. Но хочется, что бы пшп парсил sql файл и делал запросы отдельно от остальных. А если они будут отдельно, то сможем напротив допустим выводить, удачно ли произошло выполнение. Знаю, есть классы готовые.

Я не ТС, просто предположил.

AgS 24.01.2010 20:18

SolkerПримерно это и требуется. Есть готовый дамп таблиц мини портала, меня интересует как конкретно, а точнее наиболее правильно сделать данное подключение SQl файла в php, и сам процесс установки этих таблиц непосредственно в базу...

Solker 24.01.2010 20:24

Подсмотрел в этом проекте:
http://softtime.ru/info/ortus.php?down=ortus1-0.zip

PHP код:

//вставляем дамп
        
$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..

AgS 25.01.2010 15:24

Я примерно понял что к чему, большое пасибо Solker. тему думаю моно и закрыть.Ещё раз спасибо за участие.


Время: 19:48