problema com postgresql (INSERT INTO)

bom dia, preciso de uma ajuda pois estou com problemas de sintaxe, caso alguem puder me ajudar fico grato, tenho duas tabelas, uma de despesa e outra de despesageral,
do qual fiz um formulario e coloquei um codigo que quando muda o campo estatus de pendente para aprovado o codigo copia os dados da tabela de despesas para despesasgeral,
ou seja uma alimenta a outra, porem tenho um outro codigo que tive de fazer um tipo de serial e criei um campo extra nas tabelas, o que eu queria fazer era que, quando eu aprovar uma despesa,
todas que tiver o mesmo serial tbm ser aprovada e consequentemente ela ser inserida na outra tabela (despesageral) a parte do update que tem na macro eu consigo fazer funcionar,
porem o insert que esta sendo dificil. ele da erro com o codigo que tentei pela ultima vez

//////////erro quando faço o insert///////////
pg_query(): Query failed: ERROR: syntax error at or near “WHERE” LINE 1: …’, ‘SAIDA’, ‘177130.7’, ‘177630.70’, ‘200000.00’) WHERE seri… ^
Erro ao acessar o banco de dados
ERROR: syntax error at or near “WHERE” LINE 1: …’, ‘SAIDA’, ‘177130.7’, ‘177630.70’, ‘200000.00’) WHERE seri… ^

SEGUE AQUI OS CODIGOS DO INSERT:

if({status}==‘APROVADO’){
//////////////////////////////////// ALIMENTAR TABELA DESPESAS GERAL //////////////////////////////////////
$processadata2 = explode("-", {data});
$dia = $processadata2[2];
$mes = $processadata2[1];
$ano = $processadata2[0];
$hoje = date(“d-m-Y h:i:s”);

//$a = '{tipodespesas_idtipodespesas}'; 
$b = 'CRIADO';
$c = '0';
$type = 'SAIDA';
$insert_table  = 'despesasgeral';      // Table name
$insert_fields = array(   // Field list, add as many as needed
 'anoref' => "'{anoref}'",
 'mesref' => "'{mesref}'",	
 'despesas_iddespesas' => "'{iddespesas}'",
 'valor' => "'{valor}'",
 'descricao' => "'{descricao}'",
 'tipodedespesas' => "'{tipodespesas_idtipodespesas}'",
 'banco_idbanco' => "'{bancos_idbancos}'",
 'projetos_idprojetos' => "'{projetos_idprojetos}'",
 'statusdespesas' => "'{status}'",
 'criacaodespesas' => "'[usr_login]'",
 'datacriacaodespesas' => "'$hoje'",
 'datamodifdespesas' => "'$hoje'",
 'mes' => "'$mes'",
 'ano' => "'$ano'",
 'dia' => "'$dia'",
 'inorout' => "'$type'",
 'novosaldo' => "'{novosaldo}'",
 'saldoantigo' => "'{saldoantigo}'",
 'saldoreal' => "'{saldoreal}'",
 'serial' =>    "'{serial}'",

);

$insert_where3 = “serial = ‘{serial}’”;

$insert_sql = ‘INSERT INTO ’ . $insert_table
. ’ (’ . implode(’, ‘, array_keys($insert_fields)) . ‘)’
. ’ VALUES (’ . implode(’, ', array_values($insert_fields)) . ‘)’
. ’ WHERE ’ . $insert_where3;
sc_exec_sql($insert_sql);

Olá junior114,

Qual versão do teu banco ?

Tente isso:
Dê um echo no $insert_sql e copie, depois rode no banco e veja a mensagem que retorna.
Fica mais fácil debugar pelo banco.

Att,
Paulo.

O erro está em:
$insert_where3 = “serial = ‘{serial}’”;

Tente assim:
$insert_where3 = “serial = '”.{serial}."’";

E o campo {serial} realmente tem valor?

Assim como , creio que não seja necessário a última , após o campo {serial} , dentro do array