使用Foreach循环将数据插入70个字段的长数据库

时间:2015-05-11 10:54:44

标签: php mysqli

我的HTML表单中有70个文本字段。我想使用php和mysqli将这些字段中的数据插入到数据库中。所以我想在创建sql查询时使用foreach循环。我尝试了以下内容,但是我无法获得所需的结果。

foreach ($_POST as $key => $value) {
$f = $f . "," . $key ;
$v = $v . ",'" . $value . "'";      
}
$sql = "insert into table1($f) values ($v)";

变量f应该带有一串逗号分隔的字段名称,这些字段是$_POST数组的字段。变量v用于携带$_POST数组的单引号逗号分隔值。我现在正在fv的开头添加一个额外的逗号。如何删除它。

请帮忙!

3 个答案:

答案 0 :(得分:3)

您应该使用/AF从右侧删除额外的逗号

rtrim()

foreach ($_POST as $key => $value) { $f = $f . "," . $key ; $v = $v . ",'" . $value . "'"; } $f = rtrim($f,','); $v = rtrim($v,','); $sql = "insert into table1($f) values ($v)"; 会删除逗号。

rtrim($f, ",")会删除尾随和前缀逗号。

你也可以使用trim($f, ",") 删除字符串中的最后一个字符,如下所示

substr()
  

进一步阅读

     

substr($f, 0, -1); substr($v, 0, -1); http://php.net/trim

     

trim()http://php.net/rtrim

     

rtrim()http://php.net/substr

修改 更好的方法是

substr()

如果有帮助,请告诉我..

答案 1 :(得分:0)

试试这个

foreach ($_POST as $key => $value) {
$f .= $f . "," . $key ;
$v .= $v . ",'" . $value . "'";      
}
$f = ltrim($f,',');
$v = ltrim($v,',');
$sql = "insert into table1($f) values ($v)";

答案 2 :(得分:0)

最好先使用isset()检查前面的逗号,这也会删除你收到的警告。

 foreach($_POST as $key => $value) {
        $f = isset($f) ? $f . "," . $key : $key;
        $v = isset($v) ? $v . "," . $value : $value;
    }