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. // connection info
  50. $db = array();
  51. $db['host'] = 'localhost';
  52. $db['port'] = '3306';
  53. $db['name'] = '';
  54. $db['user'] = 'teste';
  55. $db['pass'] = 'teste';
  56. $db['type'] = 'mysql';
  57. TTransaction::open(NULL, $db); // open transaction
  58. $conn = TTransaction::get(); // get PDO connection
  59. // Nosso novo banco de dados
  60. $bd = 'u239729888_'.$data->nome_organizacao;
  61. $user = $data->nome_organizacao;
  62. $pw = $data->senha_db;
  63. // Cria o banco de dados e da permissão para nosso usuário no mesmo
  64. $verifica = $conn->exec(
  65. "CREATE DATABASE IF NOT EXISTS `$bd`;
  66. CREATE USER '$user'@'localhost' IDENTIFIED BY '$pw';
  67. GRANT ALL PRIVILEGES ON '$bd'.* TO '$user'@'localhost' IDENTIFIED BY '$pw';
  68. FLUSH PRIVILEGES;
  69. "
  70. );
  71. TTransaction::close(); // close transaction
  72. // Nome do Arquivo
  73. $user->style='text-transform: lowercase';
  74. $file = "app/config/".$user.".ini";
  75. $arq = "host = \"127.0.0.1\"\n";
  76. $arq .= "port = \"3306\"\n";
  77. $arq .= "name = \"$bd\"\n";
  78. $arq .= "user = \"$user\"\n";
  79. $arq .= "pass = \"$pw\"\n";
  80. $arq .= "type = \"mysql\"\n";
  81. $arq .= "prep = \"1\"\n";
  82. $arq .= "slog = \"SystemSqlLog\"\n";
  83. // Criando o Arquivo
  84. $create = fopen($file, "w+");
  85. fwrite($create, $arq);
  86. fclose($create);
  87. if ($create) {
  88. $message = "Arquivo ".$file." Criado !!";
  89. // show the message
  90. new TMessage('info', $message);
  91. }
  92. else
  93. {
  94. $message = "Não foi possível criar o arquivo de configuração ".$file." !!";
  95. // show the message
  96. new TMessage('info', $message);
  97. }
  98. // Verificamos se a base de dados foi criada com sucesso
  99. if ( $verifica ) {
  100. echo 'Banco de dados '.$bd.' criado com sucesso!';
  101. } else {
  102. echo 'Não foi possível configuarar a base de dados'.$bd.'!';
  103. }
  104. }
  105. }
  106. ?>


Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework 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.