从 STDClass 获取价值
Get value from STDClass
我正在使用 PHP 和 CodeIgniter。
我 运行 使用以下脚本进行查询:
$query = $this->db->query('select login_id, date_created from prjsite_login');
$row = $query->result();
print_r($row);
print_r 的结果是:
Array ( [0] => stdClass Object ( [login_id] => admin [date_created] =>
2018-04-04 13:18:42 ) )
这是正确的。当我尝试使用以下脚本从 stdClass 获取 1 个对象或值时,你:
echo $query->login_id;
我收到以下错误:
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: pages/home.php
Line Number: 21
Backtrace:
File: C:\xampp\htdocs\BMI_PRJSITE\application\views\pages\home.php
Line: 21 Function: _error_handler
File: C:\xampp\htdocs\BMI_PRJSITE\application\controllers\Pages.php
Line: 11 Function: view
File: C:\xampp\htdocs\BMI_PRJSITE\index.php Line: 315 Function:
require_once
我做错了什么?
TIA
由于您的结果在数组中并且数组包含对象,因此您必须首先访问该数组然后访问对象
echo $row[0]->login_id;
或使用foeach
获取所有值
foreach($row as $value)
{
echo $value->login_id;
}
您不能直接从 $query 获取值,因为此时您只是生成一个查询,只有在执行它之后您才能从 $query 获取结果,您在
$row=$query->result();
查看您的结果,您得到的结果是 stdClass 对象的数组,因此需要 json-encode 您的对象,然后将其解码回数组
$array = json_decode(json_encode($row), True);
如果你确定你只会得到一行,那么就不需要循环,你可以简单地通过
echo $array[0]->login_id;
否则,你必须去循环
foreach ($array as $value) {
echo $value->login_id;
}
我正在使用 PHP 和 CodeIgniter。 我 运行 使用以下脚本进行查询:
$query = $this->db->query('select login_id, date_created from prjsite_login');
$row = $query->result();
print_r($row);
print_r 的结果是:
Array ( [0] => stdClass Object ( [login_id] => admin [date_created] => 2018-04-04 13:18:42 ) )
这是正确的。当我尝试使用以下脚本从 stdClass 获取 1 个对象或值时,你:
echo $query->login_id;
我收到以下错误:
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: pages/home.php
Line Number: 21
Backtrace:
File: C:\xampp\htdocs\BMI_PRJSITE\application\views\pages\home.php Line: 21 Function: _error_handler
File: C:\xampp\htdocs\BMI_PRJSITE\application\controllers\Pages.php Line: 11 Function: view
File: C:\xampp\htdocs\BMI_PRJSITE\index.php Line: 315 Function: require_once
我做错了什么?
TIA
由于您的结果在数组中并且数组包含对象,因此您必须首先访问该数组然后访问对象
echo $row[0]->login_id;
或使用foeach
获取所有值
foreach($row as $value)
{
echo $value->login_id;
}
您不能直接从 $query 获取值,因为此时您只是生成一个查询,只有在执行它之后您才能从 $query 获取结果,您在
$row=$query->result();
查看您的结果,您得到的结果是 stdClass 对象的数组,因此需要 json-encode 您的对象,然后将其解码回数组
$array = json_decode(json_encode($row), True);
如果你确定你只会得到一行,那么就不需要循环,你可以简单地通过
echo $array[0]->login_id;
否则,你必须去循环
foreach ($array as $value) {
echo $value->login_id;
}