Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Codeigniter从结果集获取值_Php_Mysql_Codeigniter_Activerecord - Fatal编程技术网

Php 使用Codeigniter从结果集获取值

Php 使用Codeigniter从结果集获取值,php,mysql,codeigniter,activerecord,Php,Mysql,Codeigniter,Activerecord,在我的模型中,我有这个片段 $this->db->select('*'); $this->db->from('User'); $this->db->where('email', $mail); $query = $this->db->get(); return $query; 据我所知,$query是一个数组(一组结果),我想检索该数组中某个字段的特定值以返回它或将其分配给另一个变

在我的模型中,我有这个片段

$this->db->select('*');
        $this->db->from('User');
        $this->db->where('email', $mail);
        $query = $this->db->get();

        return $query;
据我所知,$query是一个数组(一组结果),我想检索该数组中某个字段的特定值以返回它或将其分配给另一个变量,问题是如何

我想做这样的事情

$value = $query['first_field_of_resultset'];
return $value;
有一个。这里有一个:

$user = $query->row(); 
echo $user->first_field_of_resultset;
如果您喜欢阵列:

$user = $query->row_array();
echo $user['first_field_of_resultset'];

$query是一个对象。因此,为了获得作为数组的结果,您需要执行以下操作

$result = $query->result_array();
return $result[0];

如果需要第一行,可以执行以下操作:

$row = $query->first_row();
但我不知道如果只需要一列,为什么要重新获取所有字段:

$this->db->select('user.the_column_to_select');

延伸约翰的回答,你需要掩护自己,以防什么都没有回来 因此,在模型方法中:

// make sure we have a result
if ( $query->num_rows() == 1 ) 
{  
// assign the result 
$user = $query->row();  
// pull out the field you want 
$value = $user->first_field_of_resultset;
// return it
return $value ; 
}
else { return FALSE; }
然后在控制器中,假设模型名为user\u model

if(! $value = $this->user_model->getUser($email) )
{
 // boo hoo no results
} 
else
{
// success
}
当然,这假设您已经通过CI表单验证运行了$email,以确保它是一封有效的电子邮件——然后再发送到您的数据库

您也可以尝试以下方法:

$email = $this->db->select('email')->from('users')->where(array(
      'userID' => $userID))->limit(1)->get()->row('email');

// $email will either be the email address you're looking for or FALSE

$query
实际上有一个
CI\u DB\u mysql\u result
对象,您可以调用它的方法来返回结果,结果存储在
result\u对象
属性中。我如何使用它的方法?