Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ederson Mello

[Resolvido] SQL Server no PHP

Recommended Posts

Pessoal, boa tarde.

 

 

Estou com um problema para utilizar PHP e SQL Server juntos.

 

Os erros que aparecem são:

Warning: mssql_query() [function.mssql-query]: message: Invalid column name 'usuarioteste'. (severity 16) in C:\xampp\htdocs\Projeto_Cotacao_Fornecedores\site\login.php on line 9

Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs\Projeto_Cotacao_Fornecedores\site\login.php on line 9

Warning: mssql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Projeto_Cotacao_Fornecedores\site\login.php on line 11

Abaixo segue meu código

 

conn.php

<?php
	$servidor = 'localhost';
	$usuario = '';
	$senha = '';
	
	$conexao = @mssql_connect($servidor,$usuario,$senha) or die ("Erro ao conectar no banco de dados");
	
	$banco = @mssql_select_db("Cotacoes", $conexao) or die ("Erro ao selecionar o banco");
?>

index.php

<?php require_once("includes/conn.php"); 


	$usuario = $_REQUEST['txUsuario'];
	$senha = $_REQUEST['txSenha'];
	
	$sqlquery = "select * from TBL_COMPRADOR where USUARIO = $usuario";
	
	$resultado = mssql_query($sqlquery);
	
	$row = mssql_fetch_array($resultado);
	
	echo $row['NOME'];


?>

 

Já configurei dll, já descomentei as linhas referente ao sql server no php.ini.. já fiz tudo isso. Inclusive numa primeira tentativa que fiz du certo, não sei se alterei alguma coisa posteriormente que causou estes erros e não consigo descobrir o que é. Alguem pode me ajudar?

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dar uma de google translator aqui:

 

message: Invalid column name 'usuarioteste'.

mensagem: Invalido coluna nome 'usuarioteste'.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Warning: mssql_query() [function.mssql-query]: message: Invalid column name 'usuarioteste'. (severity 16) in C:\xampp\htdocs\Projeto_Cotacao_Fornecedores\site\login.php on line 9

Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs\Projeto_Cotacao_Fornecedores\site\login.php on line 9

Warning: mssql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Projeto_Cotacao_Fornecedores\site\login.php on line 11
O primeiro erro é erro de banco de dados.

Nome inválido da coluna consultada. Essa coluna 'usuarioteste' existe?

E outra, não to vendo nem menção dela no seu código. É esse mesmo, ou você trocou o nome da table na hora de colar o código aqui?

O segundo e terceiro erro, é gerado pelo primeiro erro, resolvendo o primeiro, os outros 2 somem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

troquei, apareceu meu nome:

 

Warning: mssql_query() [function.mssql-query]: message: Invalid column name 'ederson'. (severity 16) in C:\xampp\htdocs\Projeto_Cotacao_Fornecedores\site\login.php on line 9

não faço ideia o por que!! rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então pessoal, o login é o index que coloquei lá em cima, na pressa escrevi errado, me desculpem:

 

<?php require_once("includes/conn.php");

             $usuario = $_REQUEST['txUsuario'];
             $senha = $_REQUEST['txSenha'];

             $sqlquery = "select * from TBL_COMPRADOR where USUARIO = $usuario";
             $resultado = mssql_query($sqlquery); 
             $row = mssql_fetch_array($resultado);
             echo $row['NOME'];?>

 

Resumindo, existe o index.html, com um formulário com os campos Usuário e Senha, só HTML mesmo. O action dele vai para o login.php (este acima)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algumas coisas que você deveria ver se não ocasionam esse erro.

 

1. Você tem um campo de senha, mas não o utiliza para nada. Se alguém mal intencionado adivinhar um nome de usuário, ele entra sem problema algum, uma vez que você não checa se a senha bate com o nome de usuário.

2. O nome da sua table está maiúsculo, não sei o MSSQL mas o MySql diferencia campos com letra maiúscula e minúscula.

3. Troque essa linha

$row = mssql_fetch_array($resultado);
por

$row = mssql_fetch_array($resultado, MSSQL_ASSOC);

Apenas um chute, mas o primeiro usuário da table, no campo NOME é Ederson não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

kobutiii, obrigado pela atenção.

 

- Sobre a senha, eu vou colocar depois, era só pra teste mesmo.

- Fiz um teste sobre maiusculas e minusculas e no SQL SERVER 2008 não deu erro, identificou normal.

- Troquei a linha e continuam os erros.

- O usuário é aquele mesmo, veja no codigo abaixo.

 

Bom tentei mudar o código, veja como ficou:

 

<?php   
	$servidor = 'localhost';
	$usuario = '';
	$senha = '';
	$bd = 'Cotacoes';
	
	
	if ($conexao = mssql_connect($servidor,$usuario,$senha) or die (mssql_error()))   {      
		if (db == mssql_select_db($bd, $conexao)){
				
				$usuario = 'Ederson';
				$senha = '4321';
	
				$sqlquery = "SELECT * FROM TBL_COMPRADOR WHERE USUARIO ='" . $usuario . "' AND SENHA ='" . $senha . "';" ;
				
				$resultado = mssql_query($sqlquery, $bd);
				
		} else {
				echo "base nao encontrada";
		}
		mssql_close();
	
	} else{
				echo "Erro... :(";  
	} 
?>

Agora aparece somente este erro:

Warning: mssql_query() expects parameter 2 to be resource, string given C:\xampp... on line 17

Verificando o código é a linha que executa a query:

 

$resultado = mssql_query($sqlquery, $bd);

 

 

OBS: ESTÁ CONECTANDO NORMAL OK, O QUE NÃO CONSIGO É PUXAR OS DADOS DO BD.

 

Estou desconfiado que seja alguma coisa no php.ini, não pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É não deu mesmo pessoal.

 

Felizmente poderei utilizar MySQL mesmo, então vou partir para o mais fácil já que preciso entregar amanhã isso.

 

Deixarei o assunto pendente, e quando possível volto a falar com vocês, tudo bem?

 

Muuitíssimo obrigado por me ajudarem :)

 

Um abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhando no php.net sa pra ver que a mssql_query tem o seguinte resource:

 

mssql_query ( string $query [, resource $link_identifier ] )

você ao inves de colocar $link_identifier (o que no seu caso é "$conexao") esta setando o banco de dados.

 

Experimente usar mssql_select_db() antes da query e retire o "$bd" e poste o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Pessoal... CONSEGUIII MANOS!!! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

É Evandro, realmente não era o BD, era o PHP msm :angry:

 

Graças a dica do nosso amigo Pierry eu consegui. Segue o código que funcionou perfeitamente:

 

<?php   
	$servidor = 'localhost';
	$usuario = '';
	$senha = '';
	$bd = 'Cotacoes';
	
	
	$conexao = mssql_connect($servidor,$usuario,$senha) or die (mssql_error());
	mssql_select_db($bd);
	
	$usuario = 'Ederson';
	$senha = '4321';
	
	$sqlquery = "SELECT * FROM TBL_COMPRADOR WHERE USUARIO ='" . $usuario . "' AND SENHA ='" . $senha . "';" ;
				
	$resultado = mssql_query($sqlquery);
	$row = mssql_fetch_array($resultado);
	
	echo $row['USUARIO'];
?>

Muito obrigado pela ajuda galera!!! Um abraço :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.