2016-01-26 80 views
0

我已經在一個函數中創建了一個DB查詢,它返回一個數組,我可以在以後的多個實例中使用它。返回對象而不是數組的函數

然而,當我打電話它返回一個對象(「活動對象([數據庫] => mysqli的對象」的功能),而不是其本人計劃陣列。

我知道該查詢工作作爲如果「的print_r($事件)」,而不是函數本身內「返回$事件」我可以看到所有的結果信息符合市場預期。

public function get_events() 
    { 

     $stmt = $this->Database->prepare("SELECT 'id', `title`, `event_desc`, `date`, `time`, `location`, `spots`, `event_city`, `event_spots_available`, `event_series` FROM `events` ORDER BY `date` ASC"); 
     $stmt->execute();  

     $events = array(); 

     /* bind variables to prepared statement */ 
     $stmt->bind_result($col1, $col2, $col3, $col4, $col5, $col6, $col7, $col8, $col9, $col10); 


     /* fetch values */ 
     while ($stmt->fetch()) 
     { 
      $events[] = array(
       'event_id'    => $col1, 
       'event_title'   => $col2, 
       'event_desc'   => $col3, 
       'event_date'   => $col4, 
       'event_time'   => $col5, 
       'event_location'  => $col6, 
       'event_spots'   => $col7, 
       'event_city'   => $col8, 
       'event_spots_available' => $col9, 
       'event_series'   => $col10 
      ); 

     } 
     $stmt->close(); 
     return $events; 
    } 

}

了我的錯誤,請指教?

+0

如果你有一個數據庫查詢的結果將始終是一個對象。如果你想使用這個對象,你可以將結果作爲數組或每行作爲一個數組單獨獲取。 http://php.net/manual/de/mysqli-result.fetch-array.php這應該有所幫助。如果你願意,我可以給你一個「查詢結果」的例子,以及如何將其轉換爲數組(整個工作示例)讓我知道這是否是你需要的。 – JRsz

+2

'id'周圍不正確的引號,應該是'SELECT \'id \',''title \',...' –

+0

請檢查此print_r($ events)可保存的事件。 –

回答

0

如果使用準備好的語句和想要的結果作爲一個數組,我建議是這樣的:

$query= "SELECT * FROM events;"; 
if($stmt = mysqli_prepare($connection, $query)) 
{ 
    mysqli_stmt_bind_param($stmt, "s", $param); 
    mysqli_stmt_execute($stmt); 
    $resultObject = mysqli_stmt_get_result($stmt); 
    mysqli_stmt_close($stmt); 
} 

$myArray = array(); 
$size = mysqli_num_rows($resultObject); 
for($i = 0; $i < $size; $i++) 
{ 
    $myArray[$i] = mysqli_fetch_array($resultObject, MYSQLI_ASSOC); 
} 
相關問題