obras de consulta SQL no servidor de teste, mas não ao vivo ... o que poderia ser a diferença?
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.
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?