function buildDB($cacic_config) { $builDBOK = false; $connOk = InstallAjax::checkDBConnection($cacic_config); if (!$connOk) { // Se não conectar para o processo die; } $cacic_dbdet = $cacic_config['dbdet']; $installType = $cacic_config['install']['type']; /* * processo de criação do banco e tabelas */ /* * Conexao ao banco de dados */ echo "<br>" . InstallAjax::_('kciq_msg inst connecting to database server'); $oDB = new ADO($cacic_config['db_type']); if ($installType == 'createDB') { // instalação nova $oDB->setDsn($cacic_config['db_host'], $cacic_config['db_admin'], $cacic_config['db_admin_pass'], $cacic_config['db_name']); $oDB->addDBUser($cacic_config['db_user'], $cacic_config['db_pass']); } else { // atualização da base $oDB->setDsn($cacic_config['db_host'], $cacic_config['db_user'], $cacic_config['db_pass'], $cacic_config['db_name']); } if (!$oDB->conecta()) { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg database connect fail') . '!</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':'; $msg .= '<pre>' . $oDB->getMessage() . '</pre>'; die($msg); } else { echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]"; } if ($installType == 'createDB') { // instalação nova $oDB_result = $oDB->addDBUser($cacic_config['db_user'], $cacic_config['db_pass']); echo "<br>" . InstallAjax::_('kciq_msg inst make database permissions', array($cacic_config['db_user'])); if (!$oDB_result) { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg user insert error', array($cacic_config['db_user'])) . '</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':'; $msg .= '<pre>' . $oDB->getMessage() . '</pre>'; die($msg); } else { echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]"; } } /* * Cria banco de dados */ if ($installType == 'createDB') { echo "<br>" . InstallAjax::_('kciq_msg inst build database', array($cacic_config['db_name'])); if (!$oDB->selectDB($cacic_config['db_name'])) { if (!$oDB->createDB()) { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg inst build database error', array($cacic_config['db_name'])) . '</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':'; $msg .= '<pre>' . $oDB->getMessage() . '</pre>'; die($msg); } else { echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]"; } } else { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg inst database exist', array($cacic_config['db_name'])) . '</span>'; die($msg); } } if (!$oDB->selectDB()) { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg database not exist', array($cacic_config['db_name'])) . '</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':'; $msg .= '<pre>' . $oDB->getMessage() . '</pre>'; die($msg); } if ($installType == 'createDB') { /* * Cria as tabelas do banco de dados */ $fileName = $cacic_config['path'] . 'instalador/sql/' . CACIC_SQLFILE_CREATEDB; if (is_readable($fileName)) { $cacic_sql_create_tables = $fileName; echo "<br>" . InstallAjax::_('kciq_msg inst building tables on database', array($cacic_config['db_name'])); $oDB_result = $oDB->parse_mysql_dump($cacic_sql_create_tables); if (!$oDB_result) { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg inst database build fail') . '</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':'; $msg .= '<pre>' . $oDB->getMessage() . '</pre>'; die($msg); } else { echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]"; } } else { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg inst tables build error') . '</span>'; die($msg); } } else { /* * Atualiza as tabelas do banco de dados */ $fileName = $cacic_config['path'] . 'instalador' . CACIC_DS . 'sql' . CACIC_DS . 'cacic_' . strtolower($cacic_config['install']['updateFromVersion']) . '.sql'; if (is_readable($fileName)) { $cacic_sql_create_tables = $fileName; echo "<br>" . InstallAjax::_('kciq_msg inst update tables on database', array($cacic_config['db_name'])); $oDB_result = $oDB->parse_mysql_dump($cacic_sql_create_tables); if (!$oDB_result) { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg inst update tables on database', array($cacic_config['db_name'])) . '!</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':'; $msg .= '<pre>' . $oDB->getMessage() . '</pre>'; die($msg); } else { echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]"; } } else { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg inst tables update error') . '</span>'; die($msg); } } if ($installType == 'createDB') { /* * Inclui dados básicos para CACIC, do idioma selecionado ou, caso não exista, do idioma padrão */ $fileNameTgt = str_replace("LANGUAGE", $cacic_config['cacic_language'], CACIC_SQLFILE_STDDATA); $fileName = $cacic_config['path'] . 'instalador' . CACIC_DS . 'sql' . CACIC_DS . $fileNameTgt; if (!is_readable($fileName)) { $fileName = str_replace("LANGUAGE", CACIC_LANGUAGE_STANDARD, CACIC_SQLFILE_STDDATA); $fileName = $cacic_config['path'] . 'instalador' . CACIC_DS . 'sql' . CACIC_DS . $fileName; } if (is_readable($fileName)) { $cacic_sql_dadosbase = $fileName; echo "<br>" . InstallAjax::_('kciq_msg inst insert basic data', array($cacic_config['db_name'])); $oDB_result = $oDB->parse_mysql_dump($cacic_sql_dadosbase); if (!$oDB_result) { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg inst insert basic data', array($cacic_config['db_name'])) . '!</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':'; $msg .= '<pre>' . $oDB->getMessage() . '</pre>'; die($msg); } else { echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]"; } } else { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg inst insert basic data error') . '</span>'; die($msg); } /* * Inclui dados nas tabelas para demonstração do cacic */ if ($cacic_dbdet['demo'] == 'demo') { echo "<br>" . InstallAjax::_('kciq_msg inst insert demo data'); $fileName = $cacic_config['path'] . 'instalador/sql/' . CACIC_SQLFILE_DEMODATA; if (is_readable($fileName)) { $cacic_sql_demonstracao = $fileName; $oDB_result = $oDB->parse_mysql_dump($cacic_sql_demonstracao); if (!$oDB_result) { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg inst insert demo data') . '!</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':'; $msg .= '<pre>' . $oDB->getMessage() . '</pre>'; die($msg); } else { echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]"; } } else { $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - "; $msg .= InstallAjax::_('kciq_msg inst insert demo data error') . '</span>'; die($msg); } } } echo "<br><span class='OkImg'>" . InstallAjax::_('kciq_msg inst database build process ok', array($cacic_config['db_name'])) . "</span>"; $_SESSION['buildDBOK'] = true; }