Evento afterInsert ** [Resolvido] **

Galera estou tendo um pequeno problema no evento afterInsert.

Quando cadastro uma conta, é necessario que seja criado mais um registro em juros e desconto (Isso tem a ver com plano de contas que são independentes da conta em si)

Na miha tabela de juros/desconto tenho a chave estrangeira da conta.
Mas como saber o id gerado para essa conta?

tentei colocar pegando direto do campo {id} e tambem com mysql_insert_id() mas ambos sem exito.

Sugestões?

com um select max(id).
De preferencia ter um campo para guardar o sessão do php garanti ser o ultimo registro inserido por essa sessão, ou usar na where campos como descrição e/ou outros para garantir ser o id do ultimo registro inserido.

O que vc falou está certo mas ainda assim ele persiste em falhar na FK.

A pergunta parece estranha mas há possibilidade do evento afterInsert ser disparado antes do registo existir? pois é isso que parece estar ocorrendo…

não.
faça um sc_commit antes de buscar o id.

Da pra ficar louco com esse tipo de coisa.
Ainda com erros:

sc_commit_trans();

/**

  • Selecting a field from another table
    */

// Check for record
$check_sql = “SELECT MAX(id) FROM contas”;
sc_lookup(rs, $check_sql);

$id_novo = 0;
if (isset({rs[0][0]})) // Row found
{
$id_novo = {rs[0][0]};
}

/**

  • Juros
    */

// SQL statement parameters
$insert_table = ‘contas_juros_descontos’; // Table name
$insert_fields = array( // Field list, add as many as needed
‘conta_id’ => “’”.$id_novo."’",
‘valor’ => “’”.{valor_juros}."’",
‘tipo’ => “‘0’”,
);

porque você não faz numa trigger?

Verdade, acho que estou me matando a toa. Obg novamente.