2012-02-28 128 views
0

對於我的生活,我無法弄清楚爲什麼我的PHP腳本中的下面的語句只返回一個對象。這是它與通信的MySQL服務器,到目前爲止,我寫了這個:PHP聲明應返回多個對象,但只返回一個

公共職能getCustomerinfoByCompanyID($ ITEMID){

$stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename where CompanyID=?"); 
    $this->throwExceptionOnError(); 

    mysqli_stmt_bind_param($stmt, 'i', $itemID);   
    $this->throwExceptionOnError(); 

    mysqli_stmt_execute($stmt); 
    $this->throwExceptionOnError(); 

    mysqli_stmt_bind_result($stmt, $row->CustID, $row->CompanyID, $row->FirstName, $row->Surname, $row->CellNo, $row->Email); 

    if(mysqli_stmt_fetch($stmt)) { 
     return $row; 
    } else { 
     return null; 
    } 

現在,據我所知,它應該返回我的所有客戶具有可變的CompanyID。但是,它只是返回第一個客戶,這就是全部,沒有別的。

任何想法?

此外,我想要做的一件事是連接名字和姓氏,但我不知道我是否可以在PHP中做到這一點。我仍然在學習這一點。

回答

3

它應該是更快:

while(mysqli_stmt_fetch($stmt)) { 
    $rows[] = $row; 
} 
+0

好吧,我說得對:)謝謝你的幫助。 – JESlabbert 2012-02-28 23:42:10

0

你在第一次調用mysqli_stmt_fetch()後返回,因此當然只有一個對象。 創建數組,在while循環中運行mysqli_stmt_fetch()並將所有行添加到數組,然後返回數組。

認真細緻地翻着例子是不是在這裏發帖 http://ca3.php.net/manual/en/mysqli-stmt.bind-result.php

+0

謝謝你的鏈接,我已經通過相當多的它閱讀和它開始變得有意義。 – JESlabbert 2012-02-28 23:43:00