2010-06-16 4 views
0

Я пытаюсь получить некоторые данные из Oracle через ODBC в базу данных mySQL. И затем вставьте некоторые строки в базу данных mySQL. Мне удалось перечислить строки из ORACLE, но не вставить в mySQL.PHP, соединяющий Oracle и mySQL

$time_start = microtime(true); 

set_time_limit(10000); 

//ligação ODBC ORACLE 

$connect = odbc_connect("acatex32", "acatex", "acatex"); 

$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_etmaganha", $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_etmaganha.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"; 

ответ

3

Если некоторые из ваших полей строки или даты (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(), чтобы убедиться, что ваши строки будут корректно сохранены

+0

... и добавить надлежащую проверку ошибок в коде, и процитировать s при отправке вопроса, и отбрасывать нерелевантную информацию (т. весь код HTML и Oracle в примере выше) – symcbean

1

Я попытался это с 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 
Смежные вопросы