obras de consulta SQL no servidor de teste, mas não ao vivo ... o que poderia ser a diferença?

StackOverflow https://stackoverflow.com/questions/894104

  •  23-08-2019
  •  | 
  •  

Pergunta

RESOLVIDO: Eu escrevi e testou um script PHP no servidor local. (Nada sofisticados, a apenas 2 inserções SQL consecutivas no mesmo banco de dados, mas diferentes tabelas).

Ambos os servidores executar PHP5 e MySQL 5.

No servidor local, ambas as consultas são processadas corretamente.

No servidor ao vivo, apenas os primeiros trabalhos de consulta, mas não o segundo e eu não consigo descobrir o porquê.

Aqui está o código:

    $sql_login = "INSERT INTO logintbl 
              (...) 
           VALUES (...)";
   $result_login = mysqli_query($this->connect, $sql_login);

   # Fill contact details
   $sql_contactD = "INSERT INTO contactDetails
                    (...)
         VALUES (...)";
   $result_contactD = mysqli_query($this->connect, $sql_contactD);

No meu servidor local, ambas as consultas retornar verdadeiro e os dados são adicionados na base de dados.

No meu servidor ao vivo, a primeira consulta funciona como esperado, mas a segunda consulta falhar sem qualquer mensagem de erro.

É claro, as estruturas de tabela são idênticos em ambos os servidores. Ambas as tabelas estão no mesmo banco de dados e o usuário tem direitos suficientes no banco de dados.

Qualquer pista sobre o que poderia estar errado?


Editar 1: Permissões:. Sim, o usuário tem as permissões adequadas em ambas as tabelas


Edit 2: Eu estou me sentindo muito bobo, mas seguindo o conselho de verificar mysqli_error () James', eu descobri que o servidor de produção era maiúsculas de minúsculas em relação aos nomes de tabela, ao contrário do meu servidor de teste, e que convertido o original nome da minha mesa (Contato detalhes) para minúsculas (Contato detalhes).

Obrigado a todos por sua ajuda.

Foi útil?

Solução 3

Respondendo a minha própria pergunta porque parece que a única maneira de fechá-lo corretamente:

Estou me sentindo muito bobo, mas seguindo conselho de verificação James' mysqli_error (), eu descobri que o servidor de produção foi sensível a maiúsculas em relação aos nomes de tabela, ao contrário do meu servidor de teste, e que convertido o nome original da minha mesa (Contato detalhes) para minúsculas (Contato detalhes).

Outras dicas

você tem verificado permissões em seu ambiente de produção? Significado você tem verificado que você tem acesso a inserção Contato detalhes?

Você tentou imprimir $ sql_contactD a uma tela (ou página Web), e depois executar a mesma consulta exata no MySQL Query Browser?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top