2013-06-04 4 views
0

내 배열 인 print_r은 다음과 같습니다특정 시퀀스가없는 데이터를 삽입하는 방법은 무엇입니까?

Array 
(
    [email] => [email protected] 
    [attempt] => 0 
    [timestamp] => 1369676665 
    [smtp-id] => <[email protected]> 
    [response] => 451 4.2.0 Temporarily Grey listed. Try again in a couple of minutes 
    [category] => Invitation 
    [event] => deferred 
) 
Array 
(
    [email] => [email protected] 
    [timestamp] => 1369676845 
    [smtp-id] => <[email protected]> 
    [response] => 250 2.0.0 r4RHlOGH017661 Message accepted for delivery 
    [category] => Invitation 
    [event] => delivered 
) 
Array 
(
    [email] => [email protected] 
    [timestamp] => 1369678994 
    [smtp-id] => <[email protected]> 
    [category] => Reviewers 
    [event] => processed 
) 
Array 
(
    [email] => [email protected] 
    [timestamp] => 1369678997 
    [smtp-id] => <[email protected]> 
    [response] => 250 2.0.0 Ok: queued as 02C103F0454 
    [category] => Revie 
    [event] => delivered 
) 

그리고 테이블은 이러한 행이 있습니다

EVENT_ID, 이벤트, 이메일, 카테고리, 타임 스탬프, 응답, 시도, URL, 상태, 원인, 유형, 행동을 , m_id.

내가이와 MySQL의 테이블에 삽입하기 위해 노력하고있어 : -

foreach ($temp_array as $key => $poke) 
{ 
    mysql_query ("INSERT INTO temp_array (email,timestamp,category,event,response,attempt,reason,o_id,operator,action,...)VALUES ('$poke[email]','$poke[timestamp]','$poke[category]','$poke[event]',....)"); 
} 

하지만 난이 오류를 받고 있어요 "정의되지 않은 인덱스 : 데이터를 삽입하는 방법

C:\xampp\htdocs\eembeta\array_temp.php on line 34 

카테고리하는

답변

0

이것은 시퀀스와 관련이 없지만 $ poke [ 'category']가 해당 배열 (삽입 할 요소)에 존재하지 않습니다. t는 사용하고자하는 모든 배열 필드는 초기화됩니다

$poke['category'] = $poke['category'] ? $poke['category'] : ''; 

그 코드의 의미 : 해당 필드 세트인가? 예 : 사용하십시오. no : 빈 문자열을 사용하십시오. 그런 식으로 $ poke [ 'category']가 알려져 있으므로 오류가 발생하지 않습니다.

Btw를 사용하면 ''을 0, null 또는 필요한 값으로 바꿀 수 있습니다.

+0

제안 해 주셔서 감사합니다. – user2430278

+0

하지만 여전히 오류가 발생하고 있습니다 ..! foreach ($ temp_array as $ key => $ poke) { \t \t $ poke [ 'category'] = $ poke [ 'category']? $ poke [ 'category'] : ''; 는 mysql_query ("temp_array \t \t (email'''timestamp''category''event') 값으로 INSERT ('$ [메일]을 찌를'[찌를 $ ','$ [소인]을 찌를 ' category] ','$ poke [이벤트] ') "); \t} – user2430278

+0

작은 따옴표를 사용하는 것으로 보입니다 : ('. $ poke [email].', '. $ poke [timestamp].', '. $ poke [category].', '. $ poke [이벤트].))););) –

0

쿼리 내에서 데이터를 사용하기 전에 SQL 인젝션을 방지하기 위해 데이터를 sanatize하십시오. 이를 위해 PDO 사용을 고려하십시오.

각 키에 대해 질문

응답하여, 임시 변수를 만들 같은 : $ 이벤트 =는 isset ($ _ GET [ '이벤트']) $ _ GET [ '이벤트'] : 널 (null);

관련 문제