1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Erro no comando INSERT INTO - SQL SERVER

Discussão em 'Web Development' iniciada por toblesu, 6 de Março de 2008. (Respostas: 7; Visualizações: 2061)

  1. toblesu

    toblesu Power Member

    Oias,

    Pretendo inserir dados numa tabela, que possui algumas FOREIGN KEYS, no entanto ocorre o seguinte erro:

    Warning: mssql_query() [function.mssql-query]: message: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_prod_enc_cores". The conflict occurred in database "mabiliz", table "dbo.cores", column 'cod_cor'. (severity 16) in C:\xampp\htdocs\mabiliz\Cliente\trata_forms\encomenda.php on line 74

    Não consigo entender porquê...
    O código referente a este INSERT é:


    while($row=mssql_fetch_row($bd2))
    {
    $ref = $row[1];
    $qt = $row[3];
    $pvp = $row[2];
    $cor=$row[7];
    $acab=$row[8];
    $tec=$row[9];
    $obs2=$row[11];
    $obs3=$row[12];

    $resul=mssql_query("select cod_cor, cod_acab, cod_tec from cores, acabamento, tecidos where descritivo='$cor' and tipo='$acab' and tecido='$tec'");
    $res_l=mssql_fetch_row($resul);

    $bd_penc=mssql_query("select * from prod_enc");
    $num2=mssql_num_rows($bd_penc)+1;

    $add_prod_enc="INSERT INTO prod_enc
    (
    cod_prod_enc, cod_enc, referencia, qt, pvp_linha, cod_cor, cod_acab, cod_tec, obs2, obs3
    )
    VALUES
    (
    '$num2','$num','$ref','$qt','$pvp','$res_l[0]','$res_l[1]','$res_l[2]','$obs2','$obs3'
    )";

    $del_dados_temp="DELETE from temp where ped_id='$id' and ref='$ref'";
    $sql2=mssql_query($add_prod_enc);
    $sql3=mssql_query($del_dados_temp);

    Se me puderem ajudar.......

    Obrigado.

     
    Última edição: 6 de Março de 2008
  2. mascker

    mascker Power Member

    Boas,

    Nem todos usam a skin preta.

    Olha o teu post.

    [​IMG]

    Muda para se poder perceber...

    Saudações
     
  3. Hipnoted

    Hipnoted Power Member

    Deve ser pelo seguinte:

    PHP:
    VALUES 
                        
    (
                        
    '$num2','$num','$ref','$qt','$pvp','$res_l[0]','$res_l[1]','$res_l[2]','$obs2','$obs3'
                        
    )";



    Mete assim:


    PHP:
    VALUES 
                        
    (
                        
    '".$num2."','".$num."','".$ref."','".$qt."','".$pvp."','".$res_l[0]."','".$res_l[1]."','".$res_l[2]."','".$obs2."','".$obs3."'
                        
    )";
     
  4. toblesu

    toblesu Power Member

    Viva,

    Infelizmente a tua dica nao resultou.... continua dar o mm erro....

    obrigado na mesma!
     
  5. SkylineGTR

    SkylineGTR Power Member

    Provavalmente estás a inserir como código de cor um código que não existe na tabela "cores".
     
  6. toblesu

    toblesu Power Member

    De facto, era isso que estava acontecer...... e como este código funcionava a 100% no mysql, qd passei para SQL SERVER não entendia o erro... porque não acontecia!

    obrigado!
    já resolvi o problema!

    ;)
     
  7. SkylineGTR

    SkylineGTR Power Member

    Era só prestar atenção à mensagem de erro, que a resposta era simples ;)
    Sempre que surgem conflitos com chaves estrangeiras tens de investigar essas situações.
     
  8. toblesu

    toblesu Power Member

    Como no mysql nao dava esse erro..nem sequer coloquei essa hipotese.. se calhar os constraints estavam mal construídos no mysql e daí nao dar o erro!

    O meu problema prendia-se com, por exemplo, quando uma pessoa nao seleccionava uma cor, predefini um resultado como sendo "--" e na BD era guardado como campo vazio... nao dava problemas...
    acontece que no SQL SERVER deu logo problema e então sequer coloquei essa questão.... o código já estava criado algum tempo, e passou ao lado.... não lembrei!!


    Obrigado na mesma!
     

Partilhar esta Página