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

Trying to get property of non-object using OCI connection

我是 PHP 的新人,有 OCI 连接。我想从数据库中检索一些数据并将其插入到 table 表单中。但它一直显示错误

Trying to get property 'attribute' of non-object

我试过使用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);

?>

更正你的 while 循环你正在获取数据作为 array:

oci_fetch_array($query, OCI_ASSOC) // return associated array

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
}

Oracle returns 字段名称默认为大写,因此您需要像这样使用大写索引:

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