【问题标题】:PHP connecting Oracle and mySQLPHP连接Oracle和mySQL
【发布时间】:2011-03-04 08:39:00
【问题描述】:

我试图通过 ODBC 从 Oracle 获取一些数据到 mySQL 数据库。 然后在 mySQL 数据库中插入一些行。 我设法列出了 ORACLE 中的行,但无法插入到 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";

【问题讨论】:

    标签: php mysql oracle select insert


    【解决方案1】:

    如果您的某些字段是字符串或日期(data_entrada、artigo、cliente),您应该这样写:

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

    更好的是,使用mysql_real_escape_string() 来确保您的字符串被正确保存

    【讨论】:

    • ...并为您的代码添加适当的错误检查,并在发布问题时引用特定的错误消息,并删除不相关的信息(即上面示例中的所有 HTML 和 Oracle 代码)跨度>
    【解决方案2】:

    我试过这个很成功:

     $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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-07
      • 2016-06-02
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2013-03-08
      相关资源
      最近更新 更多