Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como eu faço para esse script de conexão conecte com 2 bancos de dados sem ter criar uma nova classe ja tentei de varias maneiras e não consigo sempre resulta que não é possivel achar o banco de dados, por favor me ajudem:
<?php
class MYSQL{
public $Host = "127.0.0.1";
public $Conta = "root";
public $Senha = "senha";
public $Banco = "db_a62f174";
public $Banco = "db_ga57f19";
public $Resultado;
function __construct(){
$this->Conexao = @mysql_connect($this->Host, $this->Conta, $this->Senha);
if(!$this->Conexao)
{
echo 'Connection Error. Try again later.'; exit;
}
elseif(!@mysql_select_db($this->Banco, $this->Conexao))
{
echo 'Failed to select database.'; exit;
}
elseif(!@mysql_select_db($this->Banco2, $this->Conexao))
{
echo 'Failed to select database.'; exit;
}
}
public function consultar($query)
{
$this->SyntaxSQL = $query;
$this->Resultado = @mysql_query($this->SyntaxSQL);
if($this->Resultado){
return $this->Resultado;
}
else
{
echo 'Error in database query. Try again later';
exit;
}
}
}
?>Outra dica, utilize PDO.
Usando PDO, adapte esse code para você utilizar
<?php
$config = array( 'driver' => 'mysql',
'host' => 'localhost',
'base' =>array( 'banco-x','banco-y');
'user' => 'usuario',
'pass' => 'senha',
'charset' =>'utf8',
);
class Banco{
protected $conexao;
public function conectar(){
global $config;
$dsn0 = "{$config['driver']}:host={$config['host']};"
."dbname={$config['base'][0]};charset={$config['charset']}";
//outro banco
$dsn1 = "{$config['driver']}:host={$config['host']};"
."dbname={$config['base'][1]};charset={$config['charset']}";
try{
$this->conexao = new \PDO($dsn, $config['user'], $config['pass'] );
$this->conexao->setAttribute( \PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION );
echo "Conectado";
}catch ( Exception $err ){
echo "Não foi possível conectar";
}
}
}
$a= new Banco();
$a->conectar();
Sei que é um exemplo bem tosco (o tal do DRY), mas dá pra iniciar os estudos.você não tem o atributo com o seu tipo de encapsulamento. SyntaxSQL.
verifique...
e o atributo banco está duplicado.
public $Banco = "db_a62f174";
public $Banco = "db_ga57f19";
no __construct você está chamando $this->Banco2 sendo que o mesmo não foi criado.
Antes de tudo, retire as @ do código, ela só vai esconder erros, não corrige.
@mysql_connect
@mysql_select_db
@mysql_query