RB
Criar banco através de script php
Olá,
Tenho a seguinte from para cadastrar uma empresa, porém só consigo dar permissão no primeiro banco.
Quando executo o script novamente as permissões não são aplicadas.
Alguém já passou por isto ?
Segue código abaixo.
Tenho a seguinte from para cadastrar uma empresa, porém só consigo dar permissão no primeiro banco.
Quando executo o script novamente as permissões não são aplicadas.
Alguém já passou por isto ?
Segue código abaixo.
- <?php
- class CriarBancoEmpresa extends TPage
- {
- private $form;
- private $db_name;
- public function __construct()
- {
- parent::__construct();
- parent::include_css('app/resources/builder.css');
- parent::include_css('app/resources/blue_modificado.css');
- $this->form = new BootstrapFormBuilder('frm_cliente_fisico');
- $this->form->setFormTitle('Cliente');
- $this->form->class='frm_cliente_fisico';
- $dados_cliente = new TLabel('Dados Pessoais');
- $dados_cliente->class ='lbl_titulo';
- $this->form->addContent( [$dados_cliente] );
- $lbl_id = new TLabel('#');
- $id = new TEntry('id');
- $id->setEditable(false);
- $label_nome = new TLabel('Nome');
- $nome = new TEntry('nome_organizacao');
- $nome->style='text-transform: uppercase';
- $nome->addValidation('Nome', new TRequiredValidator);
- $label_senha = new TLabel('Senha');
- $senha = new TEntry('senha_db');
- //adiciona campos ao formulário
- $this->form->addFields( [$lbl_id,$label_nome]);
- $this->form->addFields( [$id,$nome]);
- $this->form->addFields( [$label_senha]);
- $this->form->addFields( [$senha]);
- // define the form action
- $this->form->addAction('Send', new TAction(array($this, 'onSend')), 'fa:check-circle-o green');
- //wrap the page content using vertical box
- $vbox = new TVBox;
- $vbox->style = 'width:100%';
- //$vbox->add(new TXMLBreadCrumb('menu.xml', 'DatagridCheckView'));
- $vbox->add($this->form);
- parent::add($vbox);
- }
- /**
- * Simulates an save button
- * Show the form content
- */
- public function onSend($param)
- {
- $data = $this->form->getData(); // optional parameter: active record class
- // put the data back to the form
- $this->form->setData($data);
- // connection info
- $db = array();
- $db['host'] = 'localhost';
- $db['port'] = '3306';
- $db['name'] = '';
- $db['user'] = 'teste';
- $db['pass'] = 'teste';
- $db['type'] = 'mysql';
- TTransaction::open(NULL, $db); // open transaction
- $conn = TTransaction::get(); // get PDO connection
- // Nosso novo banco de dados
- $bd = 'u239729888_'.$data->nome_organizacao;
- $user = $data->nome_organizacao;
- $pw = $data->senha_db;
- // Cria o banco de dados e da permissão para nosso usuário no mesmo
- $verifica = $conn->exec(
- "CREATE DATABASE IF NOT EXISTS `$bd`;
- CREATE USER '$user'@'localhost' IDENTIFIED BY '$pw';
- GRANT ALL PRIVILEGES ON '$bd'.* TO '$user'@'localhost' IDENTIFIED BY '$pw';
- FLUSH PRIVILEGES;
- "
- );
- TTransaction::close(); // close transaction
- // Nome do Arquivo
- $user->style='text-transform: lowercase';
- $file = "app/config/".$user.".ini";
- $arq = "host = \"127.0.0.1\"\n";
- $arq .= "port = \"3306\"\n";
- $arq .= "name = \"$bd\"\n";
- $arq .= "user = \"$user\"\n";
- $arq .= "pass = \"$pw\"\n";
- $arq .= "type = \"mysql\"\n";
- $arq .= "prep = \"1\"\n";
- $arq .= "slog = \"SystemSqlLog\"\n";
- // Criando o Arquivo
- $create = fopen($file, "w+");
- fwrite($create, $arq);
- fclose($create);
- if ($create) {
- $message = "Arquivo ".$file." Criado !!";
- // show the message
- new TMessage('info', $message);
- }
- else
- {
- $message = "Não foi possível criar o arquivo de configuração ".$file." !!";
- // show the message
- new TMessage('info', $message);
- }
- // Verificamos se a base de dados foi criada com sucesso
- if ( $verifica ) {
- echo 'Banco de dados '.$bd.' criado com sucesso!';
- } else {
- echo 'Não foi possível configuarar a base de dados'.$bd.'!';
- }
- }
- }
- ?>
Já resolveu isso? viu onde estava o erro?
Opá, tudo bem ?
Então eu não resolvi, nem descobri o erro.
Acabei deixando de lado esta ideia.