SQL / PHP-仅显示数据库的第一个值

时间:2018-11-14 11:03:25

标签: php sql oracle

全部在标题中。为什么我只得到表格的第一行而不是所有字段。

功能:

class Services_Label extends Services_Abstract
{
    public function getlibelle()
    {
        $sRequest = 'SELECT NAME FROM menu WHERE id_application = 2';
        $this->executeQueries($sRequest);
        $aResult = $this->getOneResult();
        $this->freeStatement();
        return $aResult;
     }
 }

功能应用程序:

$oMessage = new Services_Label();

$toto = $oMessage->getlibelle();

var_dump($toto);

answer:

string(15) "Prise en charge" 

表:enter image description here

4 个答案:

答案 0 :(得分:1)

按照getOneResult()的名称,您的结果集可能仅限于一个结果。

您可以发布整个功能进行确认吗?

答案 1 :(得分:1)

我不知道您的问题是什么叫您的表列,但是如果您希望所有列都使用SELECT *

class Services_Label extends Services_Abstract
{
    public function getlibelle()
    {
        $sRequest = 'SELECT * FROM menu WHERE id_application = 2';
        $this->executeQueries($sRequest);
        $aResult = $this->getOneResult();
        $this->freeStatement();
        return $aResult;
     }
 }

通常最好只实际命名要返回的列,这样您就可以这样做

class Services_Label extends Services_Abstract
{
    public function getlibelle()
    {
        $sRequest = 'SELECT NAME,COL2,COL3 FROM menu WHERE id_application = 2';
        $this->executeQueries($sRequest);
        $aResult = $this->getOneResult();
        $this->freeStatement();
        return $aResult;
     }
 }

答案 2 :(得分:0)

这是函数getoneresult()

 public function getOneResult()
{
    $row = $this->getNextRow(OCI_BOTH | OCI_RETURN_NULLS);

    if (is_array($row)) {
        return $row[0];
    } else {
        return false;
    }
}

答案 3 :(得分:0)

您需要使用while循环来收集行。因此,将函数“ getOneResult”更改为类似的内容。

public function getResults()
{
    $array = array();
    while ($row = $this->getNextRow(OCI_BOTH | OCI_RETURN_NULLS)) {
        $array[] = $row;
    } 
    return $array;
}