【问题标题】:Using Foreach loop for inserting data into 70 fields long database使用 Foreach 循环将数据插入 70 个字段长的数据库
【发布时间】:2015-05-11 10:54:44
【问题描述】:

我的 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 的开头多了一个逗号。如何删除它。

请帮忙!

【问题讨论】:

  • 使用rtrim() 函数从字符串右侧删除多余的逗号

标签: php mysqli


【解决方案1】:

您应该使用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);

进一步阅读

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

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

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

编辑 更好的方法是

$f = array(); // create blank arrays
$v = array();
foreach ($_POST as $key => $value) 
{
    $f[] = $key; // push values to the array
    $v[] = $value;      
}
$f1 = implode(",", $f); // convert array to comma separated string
$v1 = implode(",", $v);
$sql = "insert into table1($f1) values ($v1)";

如果这对你有帮助,请告诉我..

【讨论】:

    【解决方案2】:

    试试这个

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

    【讨论】:

      【解决方案3】:

      最好在前缀逗号之前先使用isset() 进行检查,这也将删除您收到的警告。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-25
        • 1970-01-01
        • 1970-01-01
        • 2013-04-05
        • 1970-01-01
        • 2017-10-05
        • 2013-08-11
        • 1970-01-01
        相关资源
        最近更新 更多