全部在标题中。为什么我只得到表格的第一行而不是所有字段。
功能:
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"
答案 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;
}