Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将多个$\u Post数组插入数据库_Php - Fatal编程技术网

Php 将多个$\u Post数组插入数据库

Php 将多个$\u Post数组插入数据库,php,Php,如何将$\u POST['wmeet']添加到自动插入中,或者我应该单独进行更新。我希望所有6个$\u POST['wmeet']值都以“ce1 sf1 sm1”格式进入m\u wmeet,每个值之间留一个空格 if (is_array($_POST['add'])) foreach ($_POST['add'] as $key => $value) $_POST['add'][$key] = mysql_real_escape_string(st

如何将
$\u POST['wmeet']
添加到自动插入中,或者我应该单独进行更新。我希望所有6个
$\u POST['wmeet']
值都以“ce1 sf1 sm1”格式进入m\u wmeet,每个值之间留一个空格

if (is_array($_POST['add']))
          foreach ($_POST['add'] as $key => $value) 
          $_POST['add'][$key] = mysql_real_escape_string(stripslashes($value));

if (is_array($_POST['wmeet']))
          foreach ($_POST['wmeet'] as $key => $value) 
          $_POST['wmeet'][$key] = mysql_real_escape_string(stripslashes($value));

        function dbSet($fields, $source = array()) {
            $set='';
            if (!source) $source = &$_POST;
            foreach ($fields as $field) {
                if (isset($source[$field])) {
             $set.="`$field`='".mysql_real_escape_string($source[$field])."', ";
                }
            }
            return substr($set, 0, -2);
        }

$fields = explode(" ", "m_user m_pass m_email m_date m_ip m_type m_country m_place");
$query_mem = "INSERT INTO social_members SET ".dbSet($fields, $_POST['add']);

            mysql_query($query_mem);

尝试利用INSERT和UPDATE之间类似语法的一种方法是使用@KristerAndersson提到的内爆方法,并将其与REPLACE INTO结合使用。您必须有一个主键作为insert的一部分,或者只有一个唯一的键才能工作。因为REPLACE-INTO与INSERT-INTO共享相同的列语法,所以您只需使用它,就可以在插入时获得更新。请记住,“替换为”将删除旧的行并插入新的行,这样记录键就会更改。

请尝试以下操作:

if (is_array($_POST['add']))
   foreach ($_POST['add'] as $key => $value) 
      $_POST['add'][$key] = mysql_real_escape_string(stripslashes($value));

   if (is_array($_POST['wmeet']))
         $_POST['add']['m_wmeet'] = mysql_real_escape_string(stripslashes(implode(' ',$_POST['wmeet'])));

    function dbSet($fields, $source = array()) {
        $set='';
        if (!source) $source = &$_POST;
        foreach ($fields as $field) {
            if (isset($source[$field])) {
         $set.="`$field`='".mysql_real_escape_string($source[$field])."', ";
            }
        }
        return substr($set, 0, -2);
    }

 $fields = explode(" ", "m_user m_pass m_email m_date m_ip m_type m_country m_place m_wmeet");
 $query_mem = "INSERT INTO social_members SET ".dbSet($fields, $_POST['add']);
 mysql_query($query_mem);

这是我从评论/答案中总结出来的。。。哪一个可行

if (is_array($_POST['wmeet']))
   foreach ($_POST['wmeet'] as $key => $value) 
   $_POST['wmeet'][$key] = mysql_real_escape_string(stripslashes($value));
   $wmeet = implode(" ",$_POST['wmeet']);
还是需要像这样

$_POST['wmeet'][$key] = 
mysql_real_escape_string(stripslashes($value = implode(" ",$_POST['wmeet'])));
然后插入代码。。。你喜欢这个工作吗

$query_mem = "INSERT INTO social_members 
    SET ".dbSet($fields, $_POST['add']. ", m_wmeet=".$wmeet);

你就不能只做
$value=introde(“,$u POST['wmeet'])
@KristerAndersson那么我应该做什么并更新以应用它,还是可以将它添加到我的插入中?我有点明白你的意图。我喜欢这个,而不是我的答案+1.