Ir para conteúdo
Fórum Script Brasil
  • 0

ERRO DE SINTAXE


Willian Palmeira

Pergunta

Olá pessoal... já cacei e não consegui resolver o problema.

Estou gerando uma página PHP que conecta no meu banco e executa um arquivo SQL externo, localizado na mesma pasta do arquivo PHP.

No entanto, está gerando esse erro:

Errormessage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO V1CATCRE (`N_CATCRE`, `CATCRE`, `INDREG`) VALUES (7, 'te' at line 1

Só que se eu rodo o arquivo diretamente pela pagina admin ele roda normalmente.

Só atraves do php que rola esse erro....

Segue abaixo o PHP:

<?php

$MySQLi = new MySQLi("HOSTNAME", "USER", "PASS", "DB");
$query = file_get_contents('v1_teste.sql', true);
if (!query) {echo "Arquivo .sql vazio";
}
elseif ($MySQLi->multi_query($query))
{
do 
{
if ($result = $MySQLi->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
if ($MySQLi->more_results()) {
printf("-----------------\n");
}
}
while ($MySQLi->next_result());
}//em caso de erro, exibe a mensagem 
if (MySQLi_warning_count($MySQLi)) {
$e = MySQLi_get_warnings($MySQLi);
do 
{
echo "Warning: $e->errno: $e->message\n";
}
while ($e->next());
} 
printf("Errormessage: %s\n", MySQLi_error($MySQLi));
?>

Segue abaixo o v1_teste.sql:

INSERT INTO V1CATCRE

(`N_CATCRE`, `CATCRE`, `INDREG`)

VALUES

(7, 'teste', 1);

alguém PODERIA ME AJUDAR?

Editado por Willian Palmeira
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
nessa linha

$MySQLi = new MySQLi("HOSTNAME", "USER", "PASS", "DB");

$query = file_get_contents('v1_teste.sql', true);

dá um echo $query;

pra ver o valor que está retornando, e outra, verifique se na sua tabela os campos

N_CATCRE e INDREG são do tipo INT

Abs.

Primeiramente, obrigado pela resposta...

Coloquei a linha e ele retorna certinho o comando que está dentro do arquivo .SQL

INSERT INTO V1CATCRE (N_CATCRE, CATCRE, INDREG) VALUES (7, 'teste', 1);

E quanto aos campos do banco, sim os dois estão como INT .... e se eu importo pelo administrador, ele executa normalmente.

Link para o comentário
Compartilhar em outros sites

  • 0

Rapaz, claro que é. Olha ali na parte debaixo

NOME CHAVE = PRIMARY KEY

COLUNA = N_CATCRE,

Como que não é chave primária?

Provavelmente você está passando um valor que já existe onde esse número deve ser único, faz um teste pra você ver

Tenta inserir assim:

INSERT INTO V1CATCRE

(`CATCRE`, `INDREG`)

VALUES

('teste', 1);

Vê o resultado.

Abs.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...