2016-11-14 25 views
1

我有这样的SQL代码,我知道我会随时只有一个结果,但查询结果是一个数组。如何获得一个字符串或整型值?如何变换箭头为int /字符串值PHP /笨

$MEMBER_ID = $this->db 
    ->select ('MEMBER_ID', false) 
    ->from($this->table_member) 
    ->where('MEMBER_EMAIL, $this->input->post('InputEmail')) 
    ->get() 
    ->result(); 

使用CodeIgniter。

谢谢

+0

你不能得到字符串,而不是数组。但是你可以使用'list()'函数赋值给变量,同时自己提取结果。 –

+0

呀,请尝试使用'var_export($ MEMBER_ID);'会告诉你什么是你处理每次,不只是这个问题。 – Solrac

回答

0

如果你确切地知道该查询得到那么只有一个结果,可以采取现场MEMBER_ID从第一个数组元素:

$MEMBER_ID = $this->db 
      ->select ('MEMBER_ID', false) 
      ->from($this->table_member) 
      ->where('MEMBER_EMAIL, $this->input->post('InputEmail')) 
      ->get() 
      ->result()[0]['MEMBER_ID']; 

或者使用更简单的查询是这样的:

$MEMBER_ID = $this->db->query("Select MEMBER_ID from table_member where id = $id")->row()->MEMBER_ID; 
0

对于这样一个简单的查询,您并不需要所有这些查询构建器调用。这将工作得很好。

$id = $this->input->post('InputEmail'); 

$MEMBER_ID = $this->db 
    ->query("Select MEMBER_ID from {$this->table_member} where id = $id") 
    ->row() 
    ->MEMBER_ID; 

但如果你坚持了艰辛的道路

$MEMBER_ID = $this->db 
    ->select ('MEMBER_ID', false) 
    ->from($this->table_member) 
    ->where('MEMBER_EMAIL, $this->input->post('InputEmail')) 
    ->get() 
    ->row() 
    ->MEMBER_ID; 
0

如果你已经知道查询应该只返回1分的结果,比不使用ressult(),或result_array()

检查了这一点: Generating Query Results

所以在你的代码ü可以在row()例外试试这个

$MEMBER_ID = $this->db 
    ->select ('MEMBER_ID', false) 
    ->from($this->table_member) 
    ->where('MEMBER_EMAIL, $this->input->post('InputEmail')) 
    ->get() 
    ->row()->MEMBER_ID; 
return $MEMBER_ID; 

row_array()

$MEMBER_ID = $this->db 
     ->select ('MEMBER_ID', false) 
     ->from($this->table_member) 
     ->where('MEMBER_EMAIL, $this->input->post('InputEmail')) 
     ->get() 
     ->row_array()['MEMBER_ID']; 
return $MEMBER_ID;