尝试使用OCI连接获取非对象的属性

时间:2018-11-24 05:22:08

标签: php oci

我是OCI连接的PHP新手。我想从数据库中检索一些数据并将其插入表格形式。但它始终显示错误

  

试图获取非对象的属性“属性”

我尝试使用oci_fetch对象/ oci_fetch_array,但是仍然相同。我也遵循了一些教程,但没有帮助。

这是我本学期的迷你项目。

这是我的源代码:

$sql="SELECT borrow.book_id, book_title, borrow.stud_id, stud_name, book_bdate, return_date, due_date
      FROM book
      JOIN borrow
      ON  book.book_id = borrow.book_id
      JOIN student
      ON borrow.stud_id = student.stud_id
      where borrow.stud_id = '$stud_id'
      ORDER BY 5 DESC ";

$query=oci_parse($link,$sql) or die ("error here!");
oci_execute($query); 

while (($row = oci_fetch_array($query, OCI_ASSOC)) != false) {
?>    
    <td><?php echo $row->stud_id; ?></td> 
    <td><?php echo $row->book_id; ?></td>
    <td><?php echo $row->book_title; ?></td>
    <td><?php echo $row->book_bdate; ?></td> 
    <td><?php echo $row->due_date; ?></td>
    <td><?php echo $row->return_date; ?></td>

    <td>
<center><a href='return-book.php?book_id=<?php echo $row->book_id; ?>'>Update</a></center>
</td>

<tr>

<?php
}
}


oci_close($link);

?>

2 个答案:

答案 0 :(得分:1)

Oracle默认情况下以大写形式返回字段名称,因此您需要像这样使用大写索引:

Here the solution where I got.

顺便说一句,谢谢大家的帮助。

答案 1 :(得分:0)

更正while循环您正在以array的形式获取数据:

  

oci_fetch_array($ query,OCI_ASSOC)//返回关联的数组

while (($row = oci_fetch_array($query, OCI_ASSOC)) != false) {
?>    
    <td><?php echo $row['stud_id']; ?></td> 
    <td><?php echo $row['book_id']; ?></td>
    <td><?php echo $row['book_title']; ?></td>
    <td><?php echo $row['book_bdate']; ?></td> 
    <td><?php echo $row['due_date']; ?></td>
    <td><?php echo $row['return_date']; ?></td>

    <td>
<center><a href='return-book.php?book_id=<?php echo $row['book_id']; ?>'>Update</a></center>
</td>

<tr>

<?php
}