SQL只从php存储过程中返回1条记录


sql only return 1 record from the stored proc with php

我在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条记录返回)

有谁知道我的代码出了什么问题吗?

您的代码有错误,请检查下面的代码。

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);
    }    
}

我的意思是,当你使用你的函数时:

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  
   }
}