PHP,分解多个单词并插入到DB表中

PHP,分解多个单词并插入到DB表中,php,Php,如果我得到post多个单词的数据,我想将它们拆分并将其保存到具有不同行的db中 keyword = "apple,banana,orage,kiwi,mango" 所以我写了这段代码 $keyword = $this->input->post('keyword'); $password = $this->input->post('pwd'); $password_confirm = 'password'; if($password == $password_conf

如果我得到post多个单词的数据,我想将它们拆分并将其保存到具有不同行的db中

 keyword = "apple,banana,orage,kiwi,mango"
所以我写了这段代码

$keyword = $this->input->post('keyword');
$password = $this->input->post('pwd');
$password_confirm = 'password';

if($password == $password_confirm)
{
    $ExplodeKeywords = explode(",", $keyword);

    foreach($ExplodeKeywords as $val) 
    {
        $arrayshift = array_shift($val);
        if(count($arrayshift) > 0)
        {
            $query = 'INSERT INTO '.T_KEYWORD_POPULAR.' (kp_keyword, kp_time) VALUES ("'.$arrayshift.'", "'.date("Y-m-d H:i:s").'")';
            $this->db->query($query);               
        }
    }

    echo 'GOOD!';
}
它不会将foreach数据保存到db中


你能看到问题的起因吗?

数组移位是怎么回事
$row
不是数组。问题是,如果您不告诉我们:(确切地说,$row是单词而不是数组。您可以使用while($row=array\u shift($ExplodeKeywords)){}或foreach($ExplodeKeywords AS$row){}无论哪种方式,$row都包含一个带有关键字值的字符串。它实际上应该被命名为$word(这就是为什么谨慎命名如此重要的原因)你为什么不把每一个变量都倒出来看看里面有什么…在你认为这是一个可以解决的问题之前,你自己把它弄清楚?数组shift在那里做什么?
$row
不是数组。问题是,如果你不告诉我们,我们不知道问题是什么:(确切地说,$row是一个单词而不是一个数组。无论是使用while($row=array_shift($ExplodeKeywords)){}还是foreach($row){},$row都包含一个带有关键字值的字符串。它实际上应该被命名为$word(这就是为什么谨慎命名如此重要的原因).你为什么不把每个变量都扔掉,看看里面有什么…在你认为这是一个可以解决的问题之前,自己解决它?你介意把变量的名称从$row改为$word吗?MihaiStancu:他正在学习PHP,和我们几年前一样,遇到了一个问题。友善一点,至少他展示了他所做的事情ne.@bsdnoobz我理解被践踏,不知道从哪里开始。但这并不是不做事有条不紊的借口。在8年的工作中,我发现我没有必要问问题(无论是在SO还是论坛上,你都可以说)。因为有条不紊地解决问题并逐个研究总是会有结果的。如果偶然在谷歌上搜索某个问题没有帮助,那么我已经清楚地知道我问的问题是错误的。或者我没有足够地分解它(即,我不明白我在做什么)。我已经积极使用SO两周了,到目前为止,我问了一个关于RegEx灾难性失败的问题。我不是说这样做没有用(你认为我在谷歌搜索时在哪里找到了我的大部分答案),我只是说,只有在你自己的智慧/知识结束时才问(你已经被RTFM ed了)是有区别的,编写了50行代码,但没有进行测试,也不知道为什么它不起作用。您介意将变量的名称从$row更改为$word吗?MihaiStancu:他正在学习PHP,遇到了一个问题,就像我们几年前遇到的问题一样。请仁慈一点,至少他展示了他所做的一切。@bsdnoobz我理解被踩了一脚,不知道从哪里开始。B但这并不是我不做事有条不紊的借口。在8年的工作中,我发现我没有必要问问题(无论是在某处还是论坛上,你都可以这么说)。因为有条不紊地解决问题并逐个研究总是会有结果的。如果偶然在谷歌上搜索某个问题没有帮助,那么我已经清楚地知道我问的问题是错误的。或者我没有足够地分解它(即,我不明白我在做什么)。我已经积极使用SO两周了,到目前为止,我问了一个关于RegEx灾难性失败的问题。我不是说这样做没有用(你认为我在谷歌搜索时在哪里找到了我的大部分答案),我只是说,只有在你自己的智慧/知识结束时才问(你已经被RTFM ed了)是有区别的,编写50行代码,而不进行测试,也不想知道为什么它不起作用。
$ExplodeKeywords = explode(",", $keyword);
foreach ($ExplodeKeywords as $row) {
    $query = 'INSERT INTO '.T_KEYWORD_POPULAR.' (kp_keyword, kp_time) VALUES ("'.$row.'", "'.date("Y-m-d H:i:s").'")';
    $this->db->query($query); 
}