[ Resolvido ] Erro ao atualizar campo data tabela detalhes p\mestre...

Olá, preciso ao incluir\modificar, na tabela detalhes quero pegar a data_recto, e copiar para a tabela mestre, ocorre erro:

Erro ao acessar o banco de dados
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 ‘&data1 WHERE codigo =‘2’’ at line 1

sc_lookup(dataset2,"SELECT (valor_empr-valor_pago)
                    FROM clientes
	     	 	    WHERE codigo ='[glo_cliente]'");

if (empty({dataset2[0][0]})) {
$total_2 =0;
sc_trunc_num($total_2,2);
} else {
$total_2 ={dataset2[0][0]};
sc_trunc_num($total_2,2);
}	

//{data_reavaliacao} =
// $data1 = sc_date({dataset2[0][1]}, “aaaa-mm-dd”, "+ ", 0, 0, 0);
// $data1 = sc_date_conv({dataset2[0][1]},“dd/mm/aaaa”,“aaaammdd”);
//sc_date
//sc_date_conv($vardt_dtlanca,“dd/mm/aaaa”,“aaaammdd”);
// $data1 = {dataset2[0][1]};
// $data1 = sc_date_conv({dataset2[0][1]},“ddmmaaaa”,“db_format”);

//$datai = {data_recto};
//$datai = str_replace(’/’, ‘’, $datai);
//$datai = date(‘Ymd’, strtotime($datai));
//date_format(nome_do_campo, “%d/%m/%Y”)

$data1 = date({data_recto});

print_r($data1);	
sc_exec_sql("UPDATE clientes 
             SET valor_restante = $total_2,
			     data_recto     = &data1
             WHERE codigo ='[glo_cliente]'");

sc_master_value('valor_restante', $total_2);

sc_commit_trans ("");
sc_redir(form_clientes.php, “”, “_parent”);

o resultado da print_r($data1);

2016-03-13

no banco de dados estar assim:
2016-03-14

Evento PHP,

como faço para corrigir.

Obrigado,
Leão

se colocar em modo debug vai perceber que o erro esta na atribuição do valor data, que deve ser uma constante alfa-numérica no SQL.

Ou seja emcapsule o valor extraído de data1 e troque o caractere & por $ para identificar que é uma variável php.

Olá Haroldo, debungando aplicação detalhe veja:

(pdo-mysql): UPDATE receber SET cod_cobrador = 2, data_recto = ‘2016-03-10’, juros = 0.00, valor_recto = 2.00, complemento = ‘’ WHERE id = 3

logo abaixo:

(pdo-mysql): UPDATE clientes SET valor_restante = 245.00, data_recto = date(10/03/2016) WHERE codigo =‘2’

ao tentar fazer o update estar correto mas no banco mysql estar assim: 2016-03-11

veja o fonte:

$data1 = sc_date_conv({data_recto}, “db_format”, “dd/mm/aaaa”);

// “dd/mm/aaaa”, “aaaa-mm-dd”);

// “dd/mm/aaaa”, “db_format”);

print_r($data1);	

// sc_master_value(‘data_recto’, $data1);

sc_exec_sql("UPDATE clientes 
             SET valor_restante = $total_2,
			     data_recto     = date($data1)
		     WHERE codigo ='[glo_cliente]'");

sc_master_value('valor_restante', $total_2);

sc_commit_trans ("");
sc_redir(form_clientes.php, “”, “_parent”);

não ocorre nenhuma mensagem de erro, mas não grava a data_recto para o mestre.

Leao,

E se fizeres assim:

$data1 = sc_date_conv({data_recto}, “db_format”, “aaaa-mm-dd”);

Funciona?

Olá Kleyber, ainda não

Erro ao acessar o banco de dados
Incorrect date value: ‘2003’ for column ‘data_recto’ at row 1

interessante com print_r($data1);

mostra 2016-03-11

exatamente como estar no banco de dados da aplicação detalhes

aguardo…

Bom, salvo engano, qualquer campo DATE no MySQL é tratado como varchar. Sendo assim, vc poderia tentar:

$data1 = “’”.sc_date_conv({data_recto}, “db_format”, “aaaa-mm-dd”)."’";

Olá Kleyber, rapaz já nos limites…
fiz assim:
$data1 = sc_date_conv({data_recto}, “db_format”, “aaaammdd”);

deu certo

Agradeço muito

Leão