Página 1 de 1
PHP: mssql_connect()
Enviado: 20 Mar 2024 00:59
por cjp
Pessoal, estou tentando fazer em PHP uma função para conexão ao SQL Server que me permita usar dois endereços de host (principal e alternativo), para que, quando um não estiver funcionando, conecte com o outro.
Tentei assim:
Código: Selecionar todos
function conectsqlserver()
{
$dthj=date('Y-m-d');
$banco = "xxx";
$usuario = "xxx";
$senha = "xxx";
$host = "endereçoprincipal";
$nVez = 0;
while ($nVez<20)
{
$link = mssql_connect($host,$banco,$senha);
$nVez++;
if(!$link)
{
if($nVez/2==intval($nVez/2))
{
$host = "enderecoalternativo";}
else
{
$host = "mssql.inaciocarvalho.com.br";}
if($nVez>10)
{
echo "<br>";
echo "Não conectou no banco SQL Server";
echo 'MySQL Error: ' . mssql_error();
return "F";
}
}
}
$sel=mssql_select_db($banco,$link);
$nVez = 0;
while ($nVez<20)
{
$nVez++;
if (!sel)
{
if($nVez>10)
{
echo "Não foi possível abrir o banco de dados";
echo 'MySQL Error: ' . mssql_error();
return "F";
}
}
}
}
return "T";
O problema está no retorno da mssql_connect().
No manual do PHP, consta:
Returns a MS SQL link identifier on success, or FALSE on error.
Entretanto, pelos testes que fiz, mesmo quando a conexão não é feita, $link não fica FALSE, tá como Resource #3.
Alguém pode me ajudar com isto?
PHP: mssql_connect()
Enviado: 02 Abr 2024 01:46
por cjp
A versão do PHP do meu provedor não suporta PDO.
PHP: mssql_connect()
Enviado: 02 Abr 2024 10:53
por sygecom
cleitonLC escreveu:SteelHeart8 escreveu:Parece haver um problema com a função mssql_connect() no PHP porque, mesmo quando nenhuma conexão é estabelecida, ela não está retornando FALSE como esperado. Isso pode ser devido a vários motivos, incluindo configurações do SQL Server ou problemas com a forma como a função é usada. Como solução alternativa, você pode tentar usar o PDO (PHP Data Objects) para se conectar ao SQL Server, pois ele oferece mais recursos e lida melhor com os erros de conexão. Costumávamos fazer o mesmo quando eu trabalhava no escritório
https://spribe2.com/. Abaixo está um exemplo simplificado de uso do PDO com dois endereços de host. Lembre-se de fazer as alterações necessárias para atender às suas necessidades e tenha em mente a segurança ao lidar com informações de conexão e senhas.
Boas,
https://spribe2.com/ do game Aviator ?
Esse usuário é um robo, vou bloquear ele.
PHP: mssql_connect()
Enviado: 02 Abr 2024 11:02
por cjp
Imaginei que fosse mesmo.
Consegue me ajudar nesta questão?
PHP: mssql_connect()
Enviado: 02 Abr 2024 13:42
por sygecom
cjp escreveu:Imaginei que fosse mesmo.
Consegue me ajudar nesta questão?
Não sou o cara pra lhe ajudar no MYSQL, vamos esperar por outro colega.
PHP: mssql_connect()
Enviado: 03 Abr 2024 01:07
por cjp
Na verdade a questão é de PHP, não propriamente de MySQL.
Aguardo ajuda dos colegas.
PHP: mssql_connect()
Enviado: 03 Abr 2024 10:45
por sygecom
By ChatGPT
Código: Selecionar todos
function conectarSqlServer()
{
$banco = "xxx";
$usuario = "xxx";
$senha = "xxx";
$host = "endereçoprincipal";
$hostBackup = "enderecoalternativo";
$tentativas = 0;
while ($tentativas < 2) {
$link = mssql_connect($host, $usuario, $senha);
if (!$link) {
$host = $hostBackup; // Use o endereço de backup na próxima tentativa
$tentativas++;
} else {
break; // Se a conexão for bem-sucedida, pare o loop
}
}
if (!$link) {
echo "Não foi possível conectar ao banco de dados";
echo 'MySQL Error: ' . mssql_error();
return "F";
}
$selecionarBanco = mssql_select_db($banco, $link);
if (!$selecionarBanco) {
echo "Não foi possível abrir o banco de dados";
echo 'MySQL Error: ' . mssql_error();
mssql_close($link); // Fecha a conexão
return "F";
}
return "T";
}
PHP: mssql_connect()
Enviado: 03 Abr 2024 23:00
por cjp
Funcionou. Muito obrigado.
Curioso que pra mim o ChatGPT não deu esta solução, só com o PPO.
PHP: mssql_connect()
Enviado: 16 Jun 2024 00:12
por rochinha
Amiguinhos,
Só deixando um adendo aqui sobre os motores PHP disponíveis.
cjp PDO seria uma versão de ADO, ou seja, PDO está para internet assim como ADO está para desktop. Nos dois, com apenas um recurso você acessa vários SGDBs apenas definindo Connections Strings. Lógico que deverá ativar os PDO_(SGBDs) que queira usar.
O driver PDO, assim como driver MySQLi pode estar ativos junto com o driver MySQL em uma mesma sessão PHP sem problemas e deve ser ativado via painel de controle do seu HOST em sessão específica de módulos adicionais. Cada Host usa um tipo de Painel.
No caso do cPanel você encontra no grupo Software, Selecionar Versão do PHP e Extensões. Marque os modulos que deseja ativar.
Verifique com o suporte do HOST a necessidade de reiniciar o servidor HTTPD ou APACHE e vá até o grupo avançado e escolha >_ Terminal e dentro digite restartsrv e dê ENTER
Lista de comandos de reiniciar serviços no cpanel
restartsrv – Reiniciar.
restartsrv_apache – Reiniciar apache.
restartsrv_bind – Reiniciar bind.
restartsrv_clamd – Reiniciar clamd.
restartsrv_courier – Reiniciar courier imap.
restartsrv_cppop – Reiniciar cppop.
restartsrv_entropychat – Reiniciar entropy chat.
restartsrv_exim – Reiniciar exim.
restartsrv_eximstats – Reiniciar exim statistics.
restartsrv_ftpserver – Reiniciar your ftp server.
restartsrv_httpd – Reiniciar httpd.
restartsrv_imap – Reiniciar impad.
restartsrv_inetd – Reiniciar inetd.
restartsrv_interchange – Reiniciar Interchange Shopping Cart.
restartsrv_melange – Reiniciar melange chat.
restartsrv_mysql – Reiniciar mysqld.
restartsrv_named – Reiniciar named.
restartsrv_postgres – Reiniciar postgresql.
restartsrv_postgresql – Reiniciar postgresql.
restartsrv_proftpd – Reiniciar proftpd.
restartsrv_pureftpd – Reiniciar pure-ftpd.
restartsrv_spamd – Reiniciar spamd.
restartsrv_sshd – Reiniciar sshd.
restartsrv_syslogd – Reiniciar syslogd.
restartsrv_tomcat – Reiniciar tomcat.
restartsrv_xinetd – Reiniciar xinetd.