Мы используем один источник с концепцией нескольких баз данных.Я пытаюсь восстановить базу данных (файл .sql) базы данных клиента, все таблицы восстанавливаются нормально, кроме триггера и хранимой процедуры.
Наше представление
Контроллер
public function import_database(){
$data = $this->input->post();
if(!empty($data))
{
$config_app = array(
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => $data['cmp_db_name'],
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE
);
$this->db =$this->load->database($config_app,TRUE); // open client database connection
$filename=$_FILES["database"]["tmp_name"];
$templine = '';
$lines = file($filename);
foreach ($lines as $line)
{
if (substr($line, 0, 2) == '--' || $line == '')
continue;
$templine .= $line;
if (substr(trim($line), -1) == ';')
{
$this->db->query($templine);
$templine = '';
}
}
}
}
Я получил следующую ошибку:
Номер ошибки: 1064 Ошибка в синтаксисе SQL;обратитесь к руководству, соответствующему вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с 'DELIMITER $$ CREATE DEFINER = root @ localhost PROCEDURE audt_pro (IN coumn_n' в строке 1 DELIMITER $$ CREATE DEFINER = root @ localhost` PROCEDURE audt_pro (INcoumn_nm TEXT, IN удаленный_id TEXT, IN tbl_nm VARCHAR (50)) НАЧАТЬ ОБЪЯВИТЬ qry текст;