Lançado Adianti Framework 7.6!
Clique aqui para saber mais
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. ...
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.

  1. <?php
  2. class CriarBancoEmpresa extends TPage
  3. {   
  4.     private $form;
  5.     private $db_name;
  6.     public function __construct()
  7.     {
  8.         parent::__construct();
  9.         parent::include_css('app/resources/builder.css');
  10.         parent::include_css('app/resources/blue_modificado.css');
  11.         $this->form = new BootstrapFormBuilder('frm_cliente_fisico');
  12.         $this->form->setFormTitle('Cliente');
  13.         $this->form->class='frm_cliente_fisico';
  14.         $dados_cliente        = new TLabel('Dados Pessoais');
  15.         $dados_cliente->class ='lbl_titulo';
  16.         $this->form->addContent( [$dados_cliente] );
  17.         $lbl_id = new TLabel('#');
  18.         $id     = new TEntry('id');
  19.         $id->setEditable(false);
  20.         $label_nome = new TLabel('Nome');
  21.         $nome       = new TEntry('nome_organizacao');
  22.         $nome->style='text-transform: uppercase';
  23.         $nome->addValidation('Nome', new TRequiredValidator);
  24.         $label_senha = new TLabel('Senha');
  25.         $senha       = new TEntry('senha_db');
  26.         //adiciona campos ao formulário
  27.         $this->form->addFields( [$lbl_id,$label_nome]);
  28.         $this->form->addFields( [$id,$nome]);
  29.         $this->form->addFields( [$label_senha]);
  30.         $this->form->addFields( [$senha]);
  31.         // define the form action 
  32.         $this->form->addAction('Send', new TAction(array($this'onSend')), 'fa:check-circle-o green');
  33.         //wrap the page content using vertical box
  34.         $vbox = new TVBox;
  35.         $vbox->style 'width:100%';
  36.         //$vbox->add(new TXMLBreadCrumb('menu.xml', 'DatagridCheckView'));
  37.         $vbox->add($this->form);
  38.         parent::add($vbox);
  39.     } 
  40.     /**
  41.      * Simulates an save button
  42.      * Show the form content
  43.      */
  44.    public function onSend($param)
  45.    {
  46.       $data $this->form->getData(); // optional parameter: active record class
  47.           // put the data back to the form
  48.       $this->form->setData($data);
  49.       
  50.       // connection info
  51.           $db = array();
  52.           $db['host'] = 'localhost';
  53.           $db['port'] = '3306';
  54.           $db['name'] = '';
  55.           $db['user'] = 'teste';
  56.           $db['pass'] = 'teste';
  57.           $db['type'] = 'mysql';
  58.           TTransaction::open(NULL$db); // open transaction 
  59.           $conn TTransaction::get(); // get PDO connection 
  60.           // Nosso novo banco de dados
  61.                 $bd     'u239729888_'.$data->nome_organizacao;
  62.                 $user $data->nome_organizacao;
  63.                 $pw        $data->senha_db;
  64.           
  65.           // Cria o banco de dados e da permissão para nosso usuário no mesmo
  66.           $verifica $conn->exec(
  67.               "CREATE DATABASE IF NOT EXISTS `$bd`; 
  68.                CREATE USER '$user'@'localhost' IDENTIFIED BY '$pw';
  69.                      GRANT ALL PRIVILEGES ON '$bd'.* TO '$user'@'localhost' IDENTIFIED BY '$pw';
  70.                      FLUSH PRIVILEGES;
  71.               "
  72.           );            
  73.                 TTransaction::close(); // close transaction
  74.                 
  75.                 // Nome do Arquivo          
  76.           $user->style='text-transform: lowercase';
  77.           $file "app/config/".$user.".ini";
  78.           $arq  "host  = \"127.0.0.1\"\n";
  79.           $arq .= "port  = \"3306\"\n";
  80.           $arq .= "name  = \"$bd\"\n";
  81.           $arq .= "user  = \"$user\"\n";
  82.           $arq .= "pass  = \"$pw\"\n";
  83.           $arq .= "type  = \"mysql\"\n";
  84.           $arq .= "prep  = \"1\"\n";
  85.           $arq .= "slog  = \"SystemSqlLog\"\n";
  86.          // Criando o Arquivo
  87.           $create fopen($file"w+");
  88.           fwrite($create$arq);
  89.           fclose($create);
  90.           if ($create) {
  91.               $message "Arquivo ".$file." Criado !!";            
  92.              // show the message
  93.               new TMessage('info'$message);
  94.           }
  95.           else 
  96.           {
  97.               $message "Não foi possível criar o arquivo de configuração ".$file." !!";            
  98.              // show the message
  99.               new TMessage('info'$message);   
  100.           }
  101.       // Verificamos se a base de dados foi criada com sucesso
  102.       if ( $verifica ) {                
  103.           echo 'Banco de dados '.$bd.' criado com sucesso!';
  104.       } else {
  105.           echo 'Não foi possível configuarar a base de dados'.$bd.'!';
  106.       }        
  107.    }
  108. }
  109. ?>


Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (2)


I

Já resolveu isso? viu onde estava o erro?
RB

Opá, tudo bem ?

Então eu não resolvi, nem descobri o erro.

Acabei deixando de lado esta ideia.