使用php脚本配置config/database.php文件



我的控制器中有一个脚本,如下所示:

if($this->db->query("CREATE DATABASE IF NOT EXISTS db_ecommerce"))
        {
                $sql=file_get_contents('./databse_backup/backup.sql');
                foreach (explode(";n", $sql) as $sql) 
                {
                    $sql = trim($sql);
                    //echo  $sql.'<br/>============<br/>';
                        if($sql) 
                    {
                        $this->db->query($sql);
                    } 
                }  
        }

它创建一个数据库,然后运行一个备份sql文件。

我的问题是,我们需要预先配置config/database.php文件。

首先,我想运行这个脚本,然后应该更改database.php文件。

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = 'db_name';

由于现在是本地主机,因此

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'db_name';

一种方法是在安装文件夹中设置"模板文件",如:例如数据库.php

$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = '<?php echo $hostname;?>';
$db['default']['username'] = '<?php echo $username;?>';
$db['default']['password'] = '<?php echo $password;?>';
$db['default']['database'] = '<?php echo $database;?>';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '<?php echo $prefix;?>';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

然后您可以获得db连接的值(例如,从表单中),并在您的codeigniter应用程序(application/config/database.php)中写入新文件

前任。

$settings['hostname']   = $this->input->post('hostname');
$settings['username']   = $this->input->post('username');
$settings['password']   = $this->input->post('password');
$settings['database']   = $this->input->post('database');
$settings['prefix']     = $this->input->post('prefix');     
$file_contents      = $this->load->view('templates/database', $settings, true);

write_file($_SERVER['DOCUMENT_ROOT'].'application/config/database.php', $file_contents);

最新更新