Prezados,
Nao posso me dizer um excelente conhecedor de PHP, mas meu uso com o programa me permitiu contornar varias situações que anteriormente dependeria de terceiros.
Tenho agora um projeto próprio, que desejo publicar e a ideia é simples assim:
Similar a uma loja virtual, cujo codigo PHP seria unico, teria que usar varios bancos de dados onde cada um seria de um projeto e/ou cliente;
Desta forma (ainda em testes de producao) criei um seletor para qual banco quero ir e a necessidade é entao fazer a troca da conexao para aquele local.
Ocorre que a macro sc_change_connection (pois nao tem muitos detalhes no help) me induz a crer que posso utilizá-la do banco ZERO para o banco UM, DOIS, TRES, etc numa simples passagem de parametros e que isto reflete a partir da aplicacao seguinte, que no caso seria o LOGIN.
Desta forma publiquei todo o projeto como conexao ao banco ZERO (raiz) e os demais (que sao espelhos deste em estrutura), têm que ser acessados automaticamente apos a escolha do usuario na tela inicial.
Só que nao funciona…ele se perde e sempre “fixa” a coisa querendo ler o banco que foi feita a publicacao.
Dai como alternativa rapida para contornar isto, me vi obrigado a publicar 6 vezes o projeto (cada um numa sub-pasta no wwwroot) para entao ele entender que é ali que vai trabalhar.
Pergunto se alguem tem/usou/conhece melhor esta macro ou possa sugerir uma outra alternativa, pois pretendo que tenha mais de 20 bancos porem todos num unico codigo que será facil/rapido controlar a publicacao e implemento.
Grato desde ja e no aguardo, onde abaixo coloco o codigo que usei.
Att,
Emerson.
====
Para funcionar, criei um blank e nele coloquei o seguinte codigo:
// Coloco em variavel global o nome da conexao ao qual terá que ser redirecionado
// O banco principal é: conn_mysql
// Os demais seriam: conn_banco1, conn_banco2, etc…
// Muda a conexao de acordo com a loja selecionada
$conn_ini = “conn_mysql”;
if ( [var_global_conn_act] == 1 ) // Abre conexao do projeto selecionado e avança para login ja naquele banco
{
sc_change_connection( $conn_ini, [var_global_conn_nom] );
// Garante que seja reletido na aplicacao seguinte
sc_redir( login );
}
else // Retorna conexao inicial e retorna ao seletor principal
{
sc_change_connection( [var_global_conn_nom], $conn_ini );
sc_redir( sel_prj );
}
// End