没有显示正确的信息PHP和Oracle查询

时间:2018-09-04 14:53:56

标签: php oracle oracle-sqldeveloper

我的问题是关于一个可以与PHP连接的Oracle数据库。使用SQL Developer使用相同的查询,我得到了:

introducir la descripción de la imagen aquí

但是在PHP中:

$tsql= "select orden, fase, maquina_id, DescMaterial, dhsalida, scg_MaterialesLotes.lote, scg_MaterialesLotes.lotecli from scg_fases inner join scg_materiales on scg_fases.IdBoletin = scg_Materiales.IdBoletin inner join scg_MaterialesLotes on scg_Materiales.IdMatOf = scg_MaterialesLotes.IdMatOF";

$stmt = sqlsrv_query( $conn, $tsql);  

if ( $stmt )    
{ 
  ?>

  while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
  {
    $orden = $row["orden"];
    $fase = $row["fase"];
    $puesto = $row["maquina_id"];
    $art = $row["CodMaterial"];
    $desc = $row["DescMaterial"];
    $fecha = $row["dhsalida"];
    $lote = $row["scg_MaterialesLotes.lote"];
    $loteCli = $row["scg_MaterialesLotes.lotecli"];

    echo "<tr>";
    echo "<td align=center>" . $orden . "</td>";
    echo "<td align=center>" . $fase . "</td>";
    echo "<td align=center>" . $puesto . "</td>";
    echo "<td align=center>" . $art . "</td>";
    echo "<td align=center>" . $desc . "</td>";
    echo "<td align=center>" . $fecha . "</td>";
    echo "<td align=center>" . $lote . "</td>";
    echo "<td align=center>" . $loteCli . "</td>";
    echo "</tr>";
  }

  ?>
  </table>
  </body>
  </html>
  <?php
}     
else     
{    
  echo "Submission unsuccessful.";
  die( print_r( sqlsrv_errors(), true));    
} 

sqlsrv_free_stmt( $stmt);    
sqlsrv_close( $conn);

使用浏览器显示:

introducir la descripción de la imagen aquí

为什么我不能显示相同的信息?问题出在哪里?谢谢

1 个答案:

答案 0 :(得分:1)

1)将CodMaterial字段添加到查询中,您没有在查询中包含字段CodMaterial,因此此行:

$art = $row["CodMaterial"];

什么都不做。因此,您可以将该字段添加到查询的较长字段列表中,也可以只使用SELECT * FROM...来检索每个字段。

2)不要在查询结果行中使用tablename.columnname 。例如,当您查询scg_MaterialesLotes.lote时,结果属性将称为lote,因此,在您的PHP代码中包含以下内容:

$lote = $row["scg_MaterialesLotes.lote"];

使用此:

$lote = $row["lote"];

scg_MaterialesLotes.lotecli

执行相同操作

3)回声$fecha作为字符串,此刻是类型为对象,而不是使用:

echo "<td align=center>" . $fecha . "</td>";

改为使用此:

echo "<td align=center>" . ($fecha ? $fecha->format("Y-m-d H:i:s") : ""). "</td>";