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.