[RESOLVIDO] - Erro Inserir dados tabela

Boa noite pessoal,
Estou com esse erro na hora de inserir dados.

(mysqlt):
INSERT INTO
inscricoes_fechadas (id_igrejas, nome_igreja, id_evento, nome_evento, qtde_inscritos, valor_evento, data_evento)
VALUES
(4 , Igreja em Guaratinguetá, 1 , Desperta Geração, 3, 45, 2013-06-22)

1064:
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 ‘em Guaratinguetá, 1 , Desperta Geração, 3, 45, 2013-06-22)’
at line 1
ADOConnection._Execute(
INSERT INTO
inscricoes_fechadas
(id_igrejas, nome_igreja, id_evento, nome_evento, qtde_inscritos, valor_evento, …, false) % line 1085, file: adodb.inc.php
ADOConnection.Execute(
INSERT INTO
inscricoes_fechadas
(id_igrejas, nome_igreja, id_evento, nome_evento, qtde_inscritos, valor_evento, …) % line 2612, file: Checa_inscritos_apl.php
Checa_inscritos_apl.fecha_inscricao() % line 2361, file: Checa_inscritos_apl.php
Checa_inscritos_apl.evento_onChange() % line 953, file: Checa_inscritos_apl.php
Checa_inscritos_apl.controle() % line 1583, file: Checa_inscritos.php

No Scriptcase está assim:

sc_exec_sql("
INSERT INTO
inscricoes_fechadas
(id_igrejas, nome_igreja, id_evento, nome_evento, qtde_inscritos, valor_evento, data_evento)
VALUES
({igreja}, $nome_igreja, {evento}, $nome_evento, $total_inscritos_habilitados, $valor_pagar_1, $data_evento_2)
");

Por fim também tentei assim:

$sql = (“INSERT INTO
inscricoes_fechadas
(id_evento_fechado,id_igrejas,nome_igreja,id_evento,nome_evento,qtde_inscritos,valor_evento,data_evento)
VALUES
(‘0’,’{igreja}’,’$nome_igreja’,’{evento}’,’$nome_evento’,’$total_inscritos_habilitados’,’$valor_pagar_1’,’$data_evento_2)’”);
sc_exec_sql($sql);

Não deu certo.

Abaixo está o dump da tabela:

CREATE TABLE inscricoes_fechadas (
id_evento_fechado int(11) NOT NULL AUTO_INCREMENT,
id_igrejas varchar(11) DEFAULT NULL,
nome_igreja varchar(160) DEFAULT NULL,
id_evento varchar(11) DEFAULT NULL,
nome_evento varchar(160) DEFAULT NULL,
qtde_inscritos varchar(11) DEFAULT NULL,
data_evento varchar(12) DEFAULT NULL,
valor_evento varchar(11) DEFAULT NULL,
PRIMARY KEY (id_evento_fechado)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

Obrigado

TICelso,

Está faltando as aspas dentro ou fora dos campos texto. O conteúdo da variável $nome_igreja deve ter as aspas simples antes e depois do texto, assim:
$nome_igreja = ‘igreja em Guaratinguetá’;
$nome_evento = ‘Desperta Geração’;

O que está acontecendo é que estás atribuindo os valores para essas variáveis SEM as aspas simples.

Boa noite Kleyber,

Segue abaixo como estou capturando os valores:

$check_igreja = ("
SELECT
ig_nome
FROM
igrejas igre
WHERE
(id_igrejas = ‘{igreja}’)
");

sc_lookup(rs_igreja, $check_igreja);

if (isset({rs_igreja[0][0]}))
{
$nome_igreja = {rs_igreja[0][0]};
}
else
{
sc_alert(“ID da Igreja não encontrado”);

}

$check_evento = ("
SELECT
ev_nome
FROM
evento
WHERE
(id_evento = ‘{evento}’)
");

sc_lookup(rs_evento, $check_evento);

if (isset({rs_evento[0][0]}))
{
$nome_evento_2 = {rs_evento[0][0]};
}
else
{
sc_alert(“Evento não encontrado”);

}

$sql = (“INSERT INTO
inscricoes_fechadas
(id_evento_fechado,id_igrejas,nome_igreja,id_evento,nome_evento,qtde_inscritos,valor_evento,data_evento)
VALUES
(‘0’,’{igreja}’,’$nome_igreja’,’{evento}’,’$nome_evento_2’,’$total_inscritos_habilitados’,’$valor_pagar_1’,’$data_evento_2)’”);
sc_exec_sql($sql);

Não entendi sobre as aspas.

Vou explicar em cima do teu código:

if (isset({rs_igreja[0][0]}))   
{
   $nome_igreja = "'".{rs_igreja[0][0]}."'";
}
   else     
{
   sc_alert("ID da Igreja não encontrado");
   
}

e no outro a mesma coisa:

if (isset({rs_evento[0][0]}))   
{
   $nome_evento_2 = "'".{rs_evento[0][0]}."'";
}
   else     
{
   sc_alert("Evento não encontrado");
   
}

Teste ai e me diga se funcionou.

Continua com erro:

(mysqlt): INSERT INTO inscricoes_fechadas (id_evento_fechado,id_igrejas,nome_igreja,id_evento,nome_evento,qtde_inscritos,valor_evento,data_evento) VALUES (‘0’,‘4’,’‘Igreja em Guaratinguetá’’,‘1’,’‘Desperta Geração’’,‘3’,‘45’,‘2013-06-22)’
1064: 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 ‘Igreja em Guaratinguetá’’,‘1’,’‘Desperta Geração’’,‘3’,‘45’,‘2013-06-22)’’ at line 5
ADOConnection.Execute(INSERT INTO
inscricoes_fechadas
(id_evento_fechado,id_igrejas,nome_igreja,id_evento,nome_evento,qtde_inscritos,valor
…, false) % line 1085, file: adodb.inc.php
ADOConnection.Execute(INSERT INTO
inscricoes_fechadas
(id_evento_fechado,id_igrejas,nome_igreja,id_evento,nome_evento,qtde_inscritos,valor_…) % line 2618, file: Checa_inscritos_apl.php
Checa_inscritos_apl.fecha_inscricao() % line 2361, file: Checa_inscritos_apl.php
Checa_inscritos_apl.evento_onChange() % line 953, file: Checa_inscritos_apl.php
Checa_inscritos_apl.controle() % line 1583, file: Checa_inscritos.php

Só reforçando: Ticelso, você já tentou executar esse SQL fora do SC ? Apenas por desencardo da consciência!

Não fiz isso ainda, mas posso tentar.

Você colocou aspas duplas ao invés de aspas simples na definição das variáveis. de qualquer forma, poste como definiste as variáveis e o SQL que montaste.

Olá pessoal.
Bom não consegui mesmo daquele jeito então resolvi mudar a regra de negócio, utilizei a tática de Napoleão http://pt.wikipedia.org/wiki/Napoleão_Bonaparte
Visto que não consegui inserir todos os dados que precisava de uma vez então inseri os dados mais importantes primeiro Id da Igreja e o Id do Evento.
Posteriormente em um dado momento apenas dei um Update na tabela com os dados faltantes.
E revolvi o meu problema.
Obrigado a todos que tentaram me ajudar.

Boa noite pessoal
Me perdoe da demora…
Segue aqui o SQL:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$check_tbl_evento = ("
SELECT
id_evento,
ev_nome,
ev_data,
ev_disponivel,
ev_valor
FROM
evento
WHERE
(id_evento = ‘{evento}’)
");

sc_lookup(rs_tbl_evento, $check_tbl_evento);

if (isset({rs_tbl_evento[0][0]}))
{
$id_evento = {rs_tbl_evento[0][0]};
$ev_nome = “’”.{rs_tbl_evento[0][1]}."’";
$ev_data = {rs_tbl_evento[0][2]};
$ev_disponivel = “’”.{rs_tbl_evento[0][3]}."’";
$ev_valor = {rs_tbl_evento[0][4]};
$valor_total_evento= ($total_inscritos_habilitados*$ev_valor);
}
else
{
sc_alert(“Evento não encontrado”);

}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$check_tbl_igrejas = ("
SELECT
id_igrejas,
ig_nome
FROM
igrejas
WHERE
(id_igrejas = ‘{igreja}’)
");

sc_lookup(rs_tbl_igrejas, $check_tbl_igrejas);

if (isset({rs_tbl_igrejas[0][0]}))
{
$id_igrejas = {rs_tbl_igrejas[0][0]};
$ig_nome = “’”.{rs_tbl_igrejas[0][1]}."’";
}
else
{
sc_alert(“Igreja não encontrada”);

}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$evento_fechado =“1”;

$sql_tbl_evento = (“INSERT INTO
inscricoes_fechadas
(id_igrejas, nome_igreja, id_evento, nome_evento, qtde_inscritos,
valor_evento, ev_fechado, data_evento)
VALUES
(’$id_igrejas’, ‘$ig_nome’, ‘$id_evento’, ‘$ev_nome’, ‘$total_inscritos_habilitados’,
‘$valor_total_evento’, ‘$evento_fechado’, ‘$ev_data’)”);
sc_exec_sql($sql_tbl_evento);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Abaixo é o Erro Atual:

Celso,

Mude este SQL assim:

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$evento_fechado ="1";

$sql_tbl_evento = ("INSERT INTO
               inscricoes_fechadas
                  (id_igrejas,      nome_igreja,   id_evento,      nome_evento,   qtde_inscritos,               
                     valor_evento,         ev_fechado,         data_evento)
            VALUES
                  ('$id_igrejas',      $ig_nome,      $id_evento,   $ev_nome,      '$total_inscritos_habilitados',
                     '$valor_total_evento',   '$evento_fechado',           '$ev_data')");
sc_exec_sql($sql_tbl_evento);

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

E nos diga se funcionou ou não.

Na mosca…
Não sei se vou entender isso quando usar “” e ‘’ fiquei enrolado…

Obrigado Kleyber.

Jesus te abençoe ricamente.

Celso,

Deus te abençoe igualmente. Estamos aqui pra ajudar no que estiver ao nosso alcance.

Duas aspas se uma mais para STRING!

Celso, como já foi resolvido o problema coloca RESOLVIDO ao lado do tópico por favor.