MisterPe 0 Denunciar post Postado Outubro 9, 2007 Moçada, negócio é o seguinte... Tenho seguinte código : : include "../base/conecta_mssql.php"; $comando_ms="select * from ms_cliente where EMail='$email' and CNPJ='$cnpj'"; $res_ms = mssql_query($comando_ms,$con_ms); $linhas_ms= mssql_num_rows($res_ms); echo $email; echo $cnpj; echo $comando_ms; echo $linhas_ms; if ($linhas_ms>0) { : Em um server rodando sob windows e sql server 2000, "$linhas_ms" retorna um valor numérico que consigo testar no IF. Em um server rodando sob linux e sql server 2005, "$linhas_ms" retorna vazio... aí o IF já era ! Alguma idéia do que pode estar acontecendo ? Pois não se trata somente de ajustar o IF para tratar o vazio... existem dezenas de outras validações parecidas no site e eu não tenho como alterar todas... Valeu a ajuda... Compartilhar este post Link para o post Compartilhar em outros sites
sxenM 0 Denunciar post Postado Outubro 9, 2007 Nos 2 a registers_global estão off? Compartilhar este post Link para o post Compartilhar em outros sites
MisterPe 0 Denunciar post Postado Outubro 9, 2007 sxenM,register_globals = On, em ambos os servidores ! Compartilhar este post Link para o post Compartilhar em outros sites
programador php 0 Denunciar post Postado Outubro 9, 2007 carautilize o countao inves do numrowsabraço Compartilhar este post Link para o post Compartilhar em outros sites
MisterPe 0 Denunciar post Postado Outubro 9, 2007 programador... A questão é a que comentei no post, são dezenas de páginas e não posso (neste momento) substituir o "mssql_num_rows" pelo "count". Preciso resolver este negócio baseado no "mssql_num_rows" http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Compartilhar este post Link para o post Compartilhar em outros sites
MisterPe 0 Denunciar post Postado Outubro 9, 2007 Liberando a apresentação de erros no servidor de produção (Linux + Sql Server 2005), obtive os seguintes warnings : Warning: mssql_query() [function.mssql-query]: message: Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue your query. (severity 16) in /home/xxx/public_html/clientes/cadastra.php on line 15Warning: mssql_query() [function.mssql-query]: Query failed in /home/xxx/public_html/clientes/cadastra.php on line 15Ou seja : na conexão ao Sql Server 2005, preciso setar o "ANSI_NULLS" e o "ANSI_WARNINGS" para ON !Galera... alguém tem alguma idéia se é possível fazer isto já no script de conexão ao sql server ?Ou tem de ser query-a-query ?Alguma idéia da sintaxe ? Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 11, 2007 MisterPe, veja se esse link ajuda - http://www.mcdbabrasil.com.br/modules.php?...rint&sid=97 Compartilhar este post Link para o post Compartilhar em outros sites
MisterPe 0 Denunciar post Postado Outubro 11, 2007 Anderson,Muito obrigado pela resposta... infelizmente hoje tive um dia "daqueles" e só agora consegui ver teu post !Tentei inserir, conforme consta do artigo, os comandos indicados (Set ANSI_NULLS ON e Set ANSI_WARNINGS ON), e não resolveu... Na verdade meu problema é mais sério do que isso : qualquer query que executo no sql server no ambiente de produção, através da função "mssql_query()" do PHP, retorna NULL... mesmo quando existem registros na tabela que obedecem as condições definidas na query !!!Como isto não acontece aqui no meu ambiente de testes, acredito tratar-se de um problema de configuração do ambiente de produção : Linux / Apache / PHP / Sql Server 2005.Agora, qual configuração... bicho, não tenho a menor idéia !Acho que meu feriado já era ! :blink: Valeu pela ajuda... Compartilhar este post Link para o post Compartilhar em outros sites
ze_violeiro 0 Denunciar post Postado Outubro 11, 2007 cara se possivel, estude usar http://adodb.sourceforge.net/. Segundo, aqui link que o Anderson Mello te passou é bom você ver direitinho, porque acho que tua solução passa por ali. Compartilhar este post Link para o post Compartilhar em outros sites
MisterPe 0 Denunciar post Postado Outubro 12, 2007 Zé,Muito obrigado pela dica... vou estudar com calma a substituição das bibliotecas nativas do PHP para conexão ao Sql Server, pelo adodb.Quanto ao link postado pelo Anderson, entendi que o foco do artigo era o uso de Linked Server. Já usamos, neste mesmo cliente, linked server para conexão de Sql Server ao DB2 (embora não seja em ambiente web).Então, temos alguma experiência nisto e o problema que estamos tendo agora é exclusivamente na conexão PHP x Sql Server, ou seja, não consegui achar um modo de utlizar linked server neste contexto do artigo do Anderson. Numa primeira análise, entendi que o Anderson tinha indicado o artigo pela mensagem de erro, que é exatamente a mesma que estou tendo aqui... tentei alterar nestes aspectos (Set ANSI_NULLS ON e Set ANSI_WARNINGS ON), não resolveu !Olhando novamente o artigo indicado pelo Anderson, existe mais uma possibilidade : o tratamento de locks no sql server. Vou fazer alguns testes com o ROWLOCK e NOLOCK, para verificar (embora acho que seja pouco provável que seja isto, afinal a query roda no banco... "somente" o resultado não é passado ao PHP).Em termos práticos, estarei seguindo dois caminhos baseados nas dicas que vcs passaram :1) NOLOCK x ROWLOCK2) adodb Valeu moçada... novidades, informo aqui !E qualquer dica adicional é sempre bem-vinda !!! Compartilhar este post Link para o post Compartilhar em outros sites
ze_violeiro 0 Denunciar post Postado Outubro 12, 2007 uma pergunta, as versões do PHP são as mesmas nos dois ambientes(teste e produção)? Ainda sobre o linux tem o FreeTDS que tem que ser compilado junto com o PHP. http://www.freetds.org/ Compartilhar este post Link para o post Compartilhar em outros sites
MisterPe 0 Denunciar post Postado Outubro 13, 2007 Zé...PHP 5 nos dois servidores e FreeTDS compilado no Linux... problema persiste !Abraço... Compartilhar este post Link para o post Compartilhar em outros sites
ze_violeiro 0 Denunciar post Postado Outubro 14, 2007 existem outras aplicações funcionando assim?linux+PHP+SQL Server nesse servidor? Compartilhar este post Link para o post Compartilhar em outros sites
MisterPe 0 Denunciar post Postado Outubro 14, 2007 Zé,Somente nosso site roda neste server !Todo o ambiente baseado em MySql funciona perfeitamente... o problema está na conexão com o Sql Server !Valeu... Compartilhar este post Link para o post Compartilhar em outros sites
MisterPe 0 Denunciar post Postado Outubro 17, 2007 Resolvido !!!O problema era com o maldito "SET ANSI_WARNINGS" que estava setado como "ON" no server de testes e "OFF" no server de produção !Acabei incluindo isso no script de conexão, assim : <?$con_ms = mssql_connect('10.15.19.22','usuario','senha') or die('No Connection - Sql Server');mssql_select_db('database',$con_ms);mssql_query("SET ANSI_NULLS ON",$con_ms);mssql_query("SET ANSI_WARNINGS ON",$con_ms);?>Agradeço a atenção de todos, especialmente do Anderson Mello (cujo os links fornecidos, serviram de base para identificação e correção do problema) e do zé violeiro (pelo interesse).Valeu moçada !!!! Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 17, 2007 De nada, MisterPe http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites