Ir para conteúdo

POWERED BY:

Arquivado

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

AndreRO

[Resolvido] Erro na leitura de campo- PHP + MS SQL

Recommended Posts

Boa tarde,

 

Estou fazendo um sistema em PHP com MS SQL Server 2008

 

Na parte de login de usuário, estou dando um select para verificar se usuário existe e pegar os dados pra sessão... todos os campos funcionam bem, exceto o campo com uniqueidentifyer, que me retorna isso: Òm|J›"E¶òª€ˆþTy

 

No banco de dados está correto: USU_ID = 4a7c6dd2-0b9b-4522-b6f2-aa8088fe5479

 

 

Me pareceu ser um problema de codificação, ou algo do tipo... Então tentei algumas formas de conversão, como CONVERT, CAST, encode, decode, etc... Sem sucesso... Nem tenho certeza se o problema é no PHP ou no SQL Server

 

 

Alguem tem alguma idéia do que possa ser?

 

Obrigado!

 

 

Código:

$query = mssql_query("SELECT TOP 1 USU_ID,NM_USUARIO,NM_SENHA,NM_TIPO,NM_EMAIL,DTHR_LOG FROM GEN_USUARIO WHERE NM_EMAIL = '".$email."' AND NM_SENHA = '".$senha."' AND FL_ATIVO = 1");

if (mssql_num_rows($query) != 1){
                echo("<script>alert('Erro! Usuário não existe ou senha inválida'); history.back() </script>");
                                           
                                           
        } else {
                $resultado = mssql_fetch_assoc($query);
                
                if (!isset($_SESSION)){
                        session_start();
                }
                
                $_SESSION["ID"] = $resultado["USU_ID"];
                $_SESSION["NOME"] = $resultado["NM_USUARIO"];
                $_SESSION["EMAIL"] = $resultado["NM_EMAIL"];
                $_SESSION["TIPO"] = $resultado["NM_TIPO"];
                $_SESSION["DTHR_LOG"] = $resultado["DTHR_LOG"];

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta passar outro padão de retorno assim...em todos resultados da query..

 

$_SESSION["ID"] = utf8_encode($resultado["USU_ID"]);

qualquer coisa grita ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO!!

 

A função que eu precisava era mssql_guid_string(), isso resolveu meu problema:

 

$_SESSION["ID"] = mssql_guid_string($resultado["USU_ID"])

 

 

Aparentemente, o MS SQL passa o UID como binário, e o que essa função faz é converter de binário para string

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.