Como eu posso executar um script sql com CodeIgniter e passar dados para ele?

Eu tenho um script sql para gerar um database e eu quero que, quando eu pressionar o botão, registre-o para o script sql, mas antes de passar para os dados do script sql sobre como o database será chamado.

alguns assim:

make_db ($ name_db);

Dependendo do tamanho do arquivo, pode ser melhor convertê-lo em uma function de modelo Codeigniter, mas, se não for possível, você pode tentar algo como exec("mysql < sql_file_name.sql");

Parece que você deseja passar o nome do database na function, para que você possa tirar a linha 'CREATE DATABASE o que quer que seja' do seu arquivo, executá-lo como uma consulta de codeigniter normal e, em seguida, 'exec' o resto do script para esse database.

Obviamente, criar bancos de dados dessa maneira geralmente não é uma ótima idéia, mas não estou aqui para julgar :-)

 $sql = file_get_contents("update-001.sql"); /* Assuming you have an SQL file (or string) you want to run as part of the migration, which has a number of statements... CI migration only allows you to run one statement at a time. If the SQL is generated, it's annoying to split it up and create separate statements. This small script splits the statements allowing you to run them all in one go. */ $sqls = explode(';', $sql); array_pop($sqls); foreach($sqls as $statement){ $statment = $statement . ";"; $this->db->query($statement); } 

A publicação original está aqui: https://gist.github.com/Relequestual/4088557

Essa é uma abordagem diferente, tente

 $this->db->query(file_get_contents("MySqlScript.sql"));