Problema Conexao PHP com Banco de Dados IIS Servidor Windows sem apache
12/02/2016
0
<?php
/* conecta banco de dados, cria uma base de dados ou data base e fecha a conexao*/
$conexao = int mssql_connect("servido.com.br","usuario","senha") or die ("Conexão Falhou:");
mssql_select_db ("bancodedados", $conexao);
$sql= "SELECT * FROM tabela";
$rs= mssql_query ($sql, $conexao);
echo "<pre>";
while ($row = mssql_fetch_array($rs)) {
print_r($row);
}
mssql_close($conexao);
?>
Abilio Rodrigues
Post mais votado
12/02/2016
1 - O PHP e o SQL Server não são muito amigos e por isso é super chato configurar uma conexão entre os 2
2 - As extensões de conexão (no seu caso mssql_) são bem delicadas para ser compatíveis com a versão do SQL Server e do sistema operacional
O PHP sem conexão com o banco de dados funciona bem com IIS, no meu caso tive que achar a versão de compilação correta (pdo_sqlsrv.dll) que fosse compatível com o seguinte cenário:
- SQL Server 2008 R2 x64
- Windows Server 2008 R2 x64
- PHP 5.3 x86 (foi a única versão que funcionou)
- PDO_SQLSRV.dll compilado para x86
Observe a riqueza de detalhes, qualquer variação nesse cenário para tudo, estamos com esse ambiente estável a 2 anos e sem reclamações, emitindo NFS-e, Boleto e Pagamento Online.
Demorei uns 30 dias para acertar a mão nessa configuração, quase desisti .. rsrsrs
William
Mais Posts
12/02/2016
Jothaz
Ative as mensagens de erros no PHP se não me falha a memória é assim:
ini_set('display_errors',1); ini_set('display_startup_erros',1); error_reporting(E_ALL);
Não testei então pode ocorrer errro, se ocorre procure na documentação do PHP online.
Rode e veja se aparece algum erro.
O banco esta rodando?
Consegue conecetar ao banco por outr software (Management, Toad e etc) usando o usuário e senhas?
12/02/2016
Jothaz
Não!
Mas roda PHP (sem problemas) e Python. Fora os produtos da Microsoft (asp, .net, wcf e etc).
15/02/2016
Abilio Rodrigues
<?php
$hostname = "servido.com.br";
$dbname = "banco";
$username = "usuario";
$pw = "senha";
try {
$DBH = new PDO('sqlsrv_connect:Server='.$servername.';Database='.$database, $user, $pass);
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(PDOException $e) {
echo $e->getMessage();
}
?>
ou
<?php
//phpinfo();
try {
$hostname = "servido.com.br";
$dbname = "banco";
$username = "usuario";
$pw = "senha";
$DBH = new PDO ("sqlsrv_connect:host=$hostname;dbname=$dbname","$username","$pw");
//$dbh = new PDO ("dblib:host=$hostname;dbname=$dbname","$username","$pw");
} catch (PDOException $e) {
echo "Erro de Conexao " .$e->getMessage(). "\n";
exit;
}
?>
Agora mensagem de erro é "could not find driver"!
O servidor é 2012 e eu consigo logar no banco normalmente!
a versão do PHP É 5.5.11.
Caso seja configuração do servidor preciso saber especificamente o que é para área responsável fazer a configuração e também não tenho acesso ao php.ini e para piorar minha situação não tenho experiência com PHP!
15/02/2016
Abilio Rodrigues
<?php
// Dados do banco
$dbhost = "NOME DO HOST"; #Nome do host
$db = "BANCO DE DADOS"; #Nome do nosso banco de dados
$user = "USUARIO"; #Nome do usuário
$password = "SENHA"; #Senha do usuário
$conninfo = array("Database" => $db, "UID" => $user, "PWD" => $password);
$conn = sqlsrv_connect($dbhost, $conninfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>
05/05/2016
Thiago Veloso
1 - O PHP e o SQL Server não são muito amigos e por isso é super chato configurar uma conexão entre os 2
2 - As extensões de conexão (no seu caso mssql_) são bem delicadas para ser compatíveis com a versão do SQL Server e do sistema operacional
O PHP sem conexão com o banco de dados funciona bem com IIS, no meu caso tive que achar a versão de compilação correta (pdo_sqlsrv.dll) que fosse compatível com o seguinte cenário:
- SQL Server 2008 R2 x64
- Windows Server 2008 R2 x64
- PHP 5.3 x86 (foi a única versão que funcionou)
- PDO_SQLSRV.dll compilado para x86
Observe a riqueza de detalhes, qualquer variação nesse cenário para tudo, estamos com esse ambiente estável a 2 anos e sem reclamações, emitindo NFS-e, Boleto e Pagamento Online.
Demorei uns 30 dias para acertar a mão nessa configuração, quase desisti .. rsrsrs
Willian... Bom dia... Eu sou novo aqui e também na programação e estou estudando PHP e estou com uma dúvida bem relacionada ao cenário que vc listou acima...
Primeiramente gostaria de saber de fato se Apache e IIS trabalham da mesma forma... Se por acaso eu desenvolver algo usando um servidor Apache, eu consigo rodar em IIS...
E ai entra o problema... Estou desenvolvendo algumas aplicações para uma empresa que vão rodar numa Intranet... Essa empresa usa um servidor com Windows Server. Eu instalei o IIS nesse servidor e consegui rodar as aplicações feitas em ASP que já tinha feito alguns anos atrás.. Como estou estudando PHP através do WampServer que instalei em meu computador, estou na dúvida se o que eu fizer vai rodar na intranet em IIS.
Gostaria de saber também se consigo instalar o Apache no windows Server e fazer ele rodar normal... Ou se o caminho seria somente através do IIS... Nesse caso gostaria de te pedir ajuda nessas configurações que vc disse ter levado 30 dias pra acertar a mão... Tenho menos de 10 dias pra entregar meu trabalho... :)
Muito obrigado desde já!!!!
05/05/2016
William
Basicamente o que foi desenvolvido no Apache roda no IIS, exceto extensões que você habilitou manualmente, claro que é recomendável que a versão do PHP seja a mesma.
Se você trabalhar com banco de dados MySQL vai conseguir trabalhar com PHP no IIS, mas se for SQL Server meu amigo aí ferrou, ainda mais com apenas 10 dias para fazer os testes!
Clique aqui para fazer login e interagir na Comunidade :)