2014-12-26 6 views
0

PHP로 작업하고 있습니다. 다음 값을 갖습니다. json_encode function.When 변수 $ vmndetails를 인쇄하면 다음과 같은 세부 정보를 얻을 수 있습니다.mysql 테이블에 json_encode 값을 삽입하십시오.

[{ 
    "id":"1", 
    "smsid":"4781366", 
    "senderid":"289613638", 
    "textcontent":"Good day reply", 
    "msgdate":"2014-12-17 13:04:20", 
    "charsetval":"UTF-8", 
    "userid":"", 
    "reprtdate":"2014-12-17 11:04:21" 
}, 
{ 
    "id":"7", 
    "smsid":"4781467", 
    "senderid":"289761363", 
    "textcontent":"Good", 
    "msgdate":"2014-12-17 13:21:18", 
    "charsetval":"UTF-8", 
    "userid":"", 
    "reprtdate":"2014-12-17 11:21:21" 
}] 

이 값을 내 mysql 테이블에 삽입해야합니다.

그래서 아래 함수를 작성했습니다.

mysql->query("INSERT INTO twowaysms(id,smsid,senderid,textcontent,msgdate,charsetval,userid,reprtdate) VALUES "."(" . implode(",",$vmndetails) . ")"); 

하지만 난이 삽입 값 목록은 열 목록과 일치하지 않는다 '고 오류가 점점 오전 : 행 1'.I에서 값의 수를 일치하지 않는 1136 열 수가 많은 여기에 같은 질문을 보았다하지만 난 할 수 없습니다 이 문제를 해결하기 위해 solution.How을 찾을 사람이 제발 도와주세요 ..

+0

것이 확인하여'$ vmndetails' 변수의 값을 보유 총 열 수와 일치합니다 –

+0

** [implode] (http://php.net/manual/ en/function.implode.php) ** 배열 원소는 객체 원소의 배열이 아니다. – Ranjith

답변

1

을 당신은 mulit 차원 배열 데이터를, 그래서이 같은 시도 -

// http://ideone.com/xX2HNU 
$vmndetails = '[{"id":"1","smsid":"4781366","senderid":"289613638","textcontent":"Good day reply","msgdate":"2014-12-17 13:04:20","charsetval":"UTF-8","userid":"","reprtdate":"2014-12-17 11:04:21"},{"id":"7","smsid":"4781467","senderid":"289761363","textcontent":"Good","msgdate":"2014-12-17 13:21:18","charsetval":"UTF-8","userid":"","reprtdate":"2014-12-17 11:21:21"}]'; 

$vmndetails = json_decode($vmndetails, true); 
$values = ""; 
foreach($vmndetails as $v) { 
    $values .= "(".implode(", ", $v)."), " 
} 
$values = rtrim($values, ", "); 

mysql->query("INSERT INTO 
    wowaysms(id,smsid,senderid,textcontent,msgdate,charsetval,userid,reprtdate) 
    VALUES {$values} "); 
+0

답장을 보내 주셔서 감사합니다. 문제가 있습니다. 작은 문제가 있습니다. 표에서 varchar로 데이터 유형을 지정 했으므로 작은 따옴표로 값을 삽입해야합니다. 삽입 쿼리 값이 반향 표시 될 때 작은 따옴표가있어. 우리가 그걸 위해서 무엇을 할 수 있니? –

+0

예. 올바로 처리했습니다. $ values. = "('".implode ("', '", $ v)와 같은 코드를 편집했습니다. 괜찮아. 고마워. –

+0

@ 엘리자베스 조쉬 당신이 도움이된다면이 대답을 받아 들여야합니다. –

관련 문제