Jump to content
Fórum Script Brasil
  • 0

ERRO DE SINTAXE


Willian Palmeira

Question

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?

Edited by Willian Palmeira
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...