用implode将数组转为字符串后系统还是报错。
public function style_status(){$this->load->model("Mall_model");
$status = $this->input->post('status');
$m_s_name = $this->input->post('m_s_name');
$m_s_id = $this->Mall_model->get_ms_id($m_s_name)->result_array();
$s_id = implode(" ",$m_s_id);
if($status != 1 && $status != 2){
get_output(8052);
}
$result =$this->Mall_model->update_style_status($s_id, array("status" => $status));
if($result){
get_output(200);
}
}这是controller的代码
public function update_style_status($s_id, $data){
$this->db->where('s_id', $s_id);
return $this->db->update(MALL_STYLE, $data);
} 这是model的代码
<p>Severity: Notice</p>
<p>Message:Array to string conversion</p>
<p>Filename: controllers/Mall_shops.php</p>
<p>Line Number: 298</p>
这是报的错。
求大神解救 骚年丶 发表于 2016-8-26 10:58
这是改进后的,我直接通过自增ID取到m_s_id,不转换为字符串,直接将数组传递到MODEL的方法里面。
这是 ...
會報錯正常,因為 where in 也是吃一維陣列
也就是你拿到 $m_s_id 時,必須跑 foreach() 去獲取 id
得到這樣的陣列 :
array(
0=>152,
1=>77,
2=>124,
3=>7789
)
才能放到 where in 裡面操作
implode() 應該只支持一維陣列
但你 result_array() 出來的會是二維 Closer 发表于 2016-8-26 10:39
implode() 應該只支持一維陣列
但你 result_array() 出來的會是二維
那我用serialize可以吗? 骚年丶 发表于 2016-8-26 10:43
那我用serialize可以吗?
得看你要達到甚麼目的
你的需求是甚麼 ? Closer 发表于 2016-8-26 10:47
得看你要達到甚麼目的
你的需求是甚麼 ?
这个数组应该只有一组数据,我只想要数组里的value。 public function style_status(){
$this->load->model("Mall_model");
$status = $this->input->post('status');
$id = $this->input->post('id');
$m_s_id = $this->Mall_model->get_ms_id($id)->result_array();
// $s_id = serialize($m_s_id);
// $s_id = implode(" ",$m_s_id);
if($status != 1 && $status != 2){
get_output(8052);
}
$result =$this->Mall_model->update_style_status($m_s_id, array("status" => $status));
if($result){
get_output(200);
}
}这是改进后的,我直接通过自增ID取到m_s_id,不转换为字符串,直接将数组传递到MODEL的方法里面。
public function update_style_status($s_id, $data){
$this->db->where_in('s_id', $s_id);
return $this->db->update(MALL_STYLE, $data);
} 这是改了后的MODEL,把where改为where_in。但还是要报错
<p>Severity: Notice</p>
<p>Message:Array to string conversion</p>
<p>Filename: database/DB_query_builder.php</p>
<p>Line Number: 805</p> 这是报的错。。怎么破。 Closer 发表于 2016-8-26 11:09
會報錯正常,因為 where in 也是吃一維陣列
也就是你拿到 $m_s_id 時,必須跑 foreach() 去獲取 id
得到 ...
好的,解决了。。谢谢大神。。
页:
[1]