2013-04-10 62 views
0

我在php中有以下代碼,它用於運行存儲過程以從數據庫返回記錄。sql只能從存儲過程中返回1條記錄用php

public function MelHpdlSql02($database) 
{ 
    $connection = mssql_connect("SQL-02", "user", "test"); 
    $db = mssql_select_db($database); 
    return $connection; 
} 

public function getRoleRecords() 
{ 
    $this->MelHpdlSql02("Staff"); 

    $version = mssql_query("EXEC app_role_select"); 
    $row = mssql_fetch_array($version);  


    var_dump($row);die; 

} 

這只是我返回從數據庫中記錄1(此假設有10條記錄返回時,我手動運行存儲過程)

有誰知道用走錯了我碼?

+0

這是因爲你只'抓取結果只會給你第一行,你需要在抓取之前通過'while'循環扔結果。 – Fabio 2013-04-10 05:38:29

+0

你的存儲過程代碼在哪裏?我在我的答案中解釋了 – Amir 2013-04-10 05:46:17

+0

。 – Fabio 2013-04-10 05:51:49

回答

0

您的代碼有誤,請檢查以下代碼。

public function MelHpdlSql02($database) 
    { 
     $connection = mssql_connect("SQL-02", "user", "test"); 
     $db = mssql_select_db($database); 
     return $connection; 
    } 

public function getRoleRecords() 
{ 
    $this->MelHpdlSql02("Staff"); 

    $version = mssql_query("EXEC app_role_select"); 
    while($row = mssql_fetch_array($version)) 
    { 
     var_dump($row); 
    }  
} 
0

我的意思,當您使用功能:

public function getRoleRecords() 
{ 
    $this->MelHpdlSql02("Staff"); 

    $version = mssql_query("EXEC app_role_select"); 
    $row = mssql_fetch_array($version);  


    var_dump($row);die; 

} 

你只取第一個結果,你需要循環中有什麼樣:

public function getRoleRecords() 
{ 
    $this->MelHpdlSql02("Staff"); 

    $version = mssql_query("EXEC app_role_select"); 
    while($row = mssql_fetch_array($version))  
    { 
     // do anything while looping among values 
    } 

}