2011-12-23 2 views
2

$_POST['wmeet']을 자동 INSERT에 추가하려면 어떻게해야합니까? 아니면 별도의 업데이트를해야합니까? 나는 모든 6 개 $_POST['wmeet'] 값이 INSERT와 UPDATE 사이에 유사한 구문을 활용하려고

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); 
+1

당신은'$ 값 = 내파 할 수 없습니다 ("", $ _ POST [ 'wmeet']);' – Cyclonecode

+0

@KristerAndersson는 어떻게해야합니까 및 업데이트를 적용하거나 추가 할 수 있습니다 내 끼워 넣다? – acctman

답변

1

한 가지 방법은 각 값 사이에 하나의 공간 "CE1의 SF1의 SM1"형식 m_wmeet에 가고 싶어하면 내파를 사용하는 것입니다 @KristerAndersson이 REPLACE INTO와 결합하여 언급 한 방법. 삽입물의 일부인 기본 키 또는이 키가 작동하는 고유 키가 있어야합니다. REPLACE INTO는 INSERT INTO와 같은 열 구문을 공유하기 때문에 이것을 사용하고 INSERT와 함께 업데이트를 가져올 수 있습니다. REPLACE INTO는 이전 행을 삭제하고 새 행을 삽입하므로 레코드 키가 변경됩니다. 이 같은

1

시도 뭔가 :

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); 
+0

나는 당신이 이걸 가지고 어디로 가고 있는지 좀 보았습니다. – acctman

+0

@acctman - 글쎄, 다른 사람은 =) – Cyclonecode

+0

나는 내 대답보다이게 맘에 든다. +1 – davidethell

0

이 내가 한 일 것이다 코멘트/답변 ...에서 조립 한 무엇인가?

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); 
관련 문제