1

I' trying to get some data from Oracle via ODBC to mySQL database. And then Insert some lines in mySQL database. I manage to list the lines from ORACLE but fail to Insert into mySQL.

$time_start = microtime(true);

set_time_limit(10000);

//ligação ODBC ORACLE

$connect = odbc_connect("test", "test", "test");

$query = "select barcod, to_char(barfecgen, 'YYYY-MM-DD') as data, barnumuni, barcolnom, clicod from barcad where barcodreo = 1";

$result = odbc_exec($connect, $query);

$numOF = 0;

// Ligação mySQL

$con = mysql_connect("localhost","root","intranet");

if (!$con)

  {

  die('Erro de ligação mySQL: ' . mysql_error());

  }


mysql_select_db("bd_test", $con);


?>

 < table border="0" align="center" cellpadding="8" cellspacing="1">

    < tr class="cabecalho_tabela">

      < td bgcolor="#666666"><strong>#</strong></td>
      < td bgcolor="#666666"><strong>Ordem de Servi&ccedil;o</strong></td>
      < td bgcolor="#666666"><strong>Data entrada</strong></td>
      < td bgcolor="#666666"><strong>Kg entrada</strong></td>
      < td bgcolor="#666666"><strong>Artigo</strong></td>
      < td bgcolor="#666666"><strong>C&oacute;digo do cliente</strong></td>
    < /tr>
    <?php
 while(odbc_fetch_row($result)){

   $of1 = odbc_result($result, 1);//Ordem de servi&ccedil;o

  $of2 = odbc_result($result, 2);//Data de Entrada

   $of3 = odbc_result($result, 3);//kg entrada

   $of4 = odbc_result($result, 4);//Artigo

   $of5 = odbc_result($result, 5);//Cliente

   $numOF++;

  $minhadata = substr(odbc_result($result, 2), 0, 4);

  if ($minhadata == "2010") {

   $corlinha = "linha_tabela_alt";

   // insere registos

   $mysql_query = ("INSERT INTO bd_test.tb_reclamacoes (data_entrada, ordem_servico, cliente, kg_entrada, artigo) VALUES ($of2, $of1, $of5, $of3, $of4)");

  } else {

   $corlinha = "linha_tabela";
  }

   ?>

    < tr class="<?php echo $corlinha; ?>">
      < td align="righ t" bgcolor="#CCCCCC"><?php echo $numOF; ?></td>
      < td bgcolor="#CCCCCC"><?php echo $of1; ?></td>
      < td align="center" bgcolor="#CCCCCC"><?php echo $of2; ?></td>
      < td align="right" bgcolor="#CCCCCC"><?php echo $of3; ?></td>
      < td align="center" bgcolor="#CCCCCC"><?php echo $of4; ?></td>
      < td align="right" bgcolor="#CCCCCC"><?php echo $of5; ?></td>
    < /tr>
    <?php
}
  ?>
  < /table>
<?php
odbc_close($connect);
mysql_close($con);
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "Tempo de Script: $time segundos\n";

2 Answers 2

3

If some of your fields are strings or dates (data_entrada, artigo, cliente) you should write this :

  $mysql_query = ("INSERT INTO bd_etmaganha.tb_reclamacoes (data_entrada, ordem_servico, cliente, kg_entrada, artigo) VALUES ('$of2', $of1, '$of5', $of3, '$of4')");

And even better, use mysql_real_escape_string() to ensure your strings will be correctly saved

Sign up to request clarification or add additional context in comments.

1 Comment

...and add proper error checking to your code, and quote specific error messages when posting a question, and strip out irrelevant information (i.e. all the HTML and Oracle code in the sample above)
1

I tried this with succes:

 $query = ("INSERT INTO bd_etmaganha.tb_reclamacoes (data_entrada, ordem_servico, cliente, kg_entrada, artigo) VALUES ($of2, $of1, $of5, $of3, $of4)");
 mysql_query($query); // u forget to execute query

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.