2016-05-07 4 views
0

Ich habe versucht, PDO statt MySQL zu lernen, wenn PHP, ich ein Stück Code haben kann ich nicht sehen, wo der Fehler ist:PDO Fehler Kann nicht Objekt des Typs stdClass als Array verwenden

<?php 

include('includes/db_connection.php'); 
include('includes/sessions.php'); 
include('includes/functions.php'); 
include('includes/header.php'); 
include('includes/loginnav.php'); 

$row = DB::getInstance()->selectOneByField('membership', 'username', $member); 

$logged_in_users_id = $row['id']; 

$result3 = DB::getInstance()->select(' 
    SELECT * 
    FROM `pms` 
    WHERE `sender_id` = :logged_in_users_id 
    ORDER BY `date_added` DESC', 
[ 
    'logged_in_users_id' => $logged_in_users_id 
]); 

if (count($result3) == 0) { 
    stderr('No messages have been sent. (<a href="inbox.php">Inbox</a>)'); 
} 

?> 

<div class="panel panel-primary"> 
    <div class="panel-heading">Sentbox</div> 
    <div class="panel-body"> 
     <table class="table table-striped table-condensed table-responsive table-hover"> 
      <thead> 
       <tr> 
        <th>Subject</td> 
        <th>Date Sent</td> 
        <th>To User</td> 
        <th>Read (<font color="green">Y</font>&nbsp;/&nbsp;<font color="red">N</font>)</td> 
       </tr> 
      </thead> 
      <tbody> 
       <?php foreach ($result3 as $row) { ?> 
        <?php 
         $id = $row['id']; 
         $sendee_id = $row['reciever_id']; 
         $read = $row['read_flag']; 
         $row = DB::getInstance()->selectOneByField('membership', 'id', $sendee_id); 
         $sendee = $row['username']; 
         $sendee_id = $row['id']; 
         $row_2 = DB::getInstance()->selectOneByField('pms', 'reciever_id', $logged_in_users_id, PDO::FETCH_OBJ); 
        ?> 
        <tr> 
         <td><strong><?php echo htmlspecialchars($row_2['subject']) ?></strong></td> 
         <td><?php echo htmlspecialchars($row_2['date_added']) ?></td> 
         <td><a href="user-details.php?id=<?php echo $sendee_id ?>"><?php echo htmlspecialchars($sendee) ?></td> 
         <td style="color: <?php echo ($read == 'Y')? 'green': 'red' ?>"><strong><?php echo htmlspecialchars($read) ?></strong></td> 
        </tr> 
       <?php } ?> 
      </tbody> 
     </table> 
    </div> 
</div> 

der Fehler: auf der Linie 52, die sich auf dieser Linie beging: „PHP Fatal error Kann nicht Objekt des Typs stdClass als Array in Verwendung“:

<td><strong><?php echo htmlspecialchars($row_2['subject']) ?></strong></td> 

ich habe versucht, zu debuggen, was der Fehler ist, aber ich bin fest in der Minute, jede Hilfe wäre willkommen.

+0

Der Fehler sagt Ihnen, was das Problem ist. '$ row_2' ist ein Objekt, aber Sie versuchen, darauf als Array zuzugreifen. –

+2

..in anderen Worten versuchen Sie '$ row_2-> Thema' – Mikey

+0

Danke Mikey! hat super funktioniert :) – graham23s

Antwort

2

Versuchen $row_2->subject statt $row_2['subject']

Beim Zugriff auf StdClass Objekte verwenden ->.

+0

Vielen Dank an Prax ein Noob Fehler! – graham23s

Verwandte Themen