gpt4 book ai didi

php - 在 codeigniter 中将数组从 Controller 传递到模型

转载 作者:搜寻专家 更新时间:2023-10-31 20:45:18 24 4
gpt4 key购买 nike

我正在 Codeigniter 中做一个项目。在这里,我使用 imap 从我的 gmail id 中获取最新的 10 封邮件。在这里,我想获取已获取邮件的 from 字段,并且我想检查已获取邮件的 from 字段是否在我的数据库中 table('clients') 。在这里,我将获取邮件的 10 from 字段存储到数组中,并将其传递给模型,在模型中进行检查并返回匹配的字段名称。但这对我不起作用。

我的 Controller 函数是:

if ($mbox = imap_open($authhost, $user, $pass)) {
$emails = imap_search($mbox, 'ALL');
$some = imap_search($mbox, 'SUBJECT "Suspicious sign in prevented"', SE_UID);
$MC = imap_check($mbox);
$inbox = $MC->Nmsgs;
$inboxs = $inbox - 9;
if ($emails) {
$data['overview'] = imap_fetch_overview($mbox, "$inboxs,$inboxs:$inbox", 0);
$i = 0;
foreach ($data['overview'] as $i => $val) {

$from[$i] = $val->from;
$i++;
}

$data['result'] = $this->crm_model->get_names($from);
foreach ($data['result'] as $row) {
echo $row->name;echo "<br/>";
}

}
imap_close($mbox);
}

我的模型函数是:

function get_names($from) {

$this->db->select('name');
$this->db->from('clients');
$this->db->where_in('name', $from);
$query = $this->db->get();
return $query->result();
}

但是当我像下面这样使用上面的模型函数时,它返回值

function get_names() {
$options = array(
'0' => 'Job Openings',
'1' => 'Offers',
'2' => 'Techgig',
'3' => 'Australia',
);

$this->db->select('name');
$this->db->from('clients');
$this->db->where_in('name', $options);
$query = $this->db->get();
return $query->result();
}

我认为问题在于将值从 Controller 传递到模型。谁能帮我。提前致谢

最佳答案

在使用 where_in(逗号分隔值列表)在数据库中执行任何查询时,值列表应该像这个数组:

$options = array('Hello', 'World!', 'Beautiful', 'Day!');

不是这样的:

 $options = array('0' => 'Job Openings','1' => 'Offers','2' => 'Techgig','3' =>'Australia',);

要做到这一点,你应该内爆这个数组!

$opt=implode(",",$options);

并将这个 $opt 数组传递给 WHERE_IN()

希望这能解决您的问题!

关于php - 在 codeigniter 中将数组从 Controller 传递到模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14049554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com