php 출력 JSON을 MySQL 테이블로 파싱하기



php mysql json (1)

귀하의 json 데이터에는 최상위 키 '액티'가 있으므로 $my_arr->Actie 반복해야합니다.

다음과 같이 코드를 단순화 할 수 있습니다.

$actieurl = "http://creative3s.com/thomas/nmdad/actie.json";
$my_arr = json_decode(file_get_contents($actieurl));

$db = new Zend_Db_Adapter_Pdo_Mysql(array(
    'host' => 'localhost',
    'username' => 'root',
    'password' => NULL,
    'dbname' => 'zf-tutorial'
));

foreach($my_arr->Actie as $row){
    $db->insert('testerdetest', (array)$row);
}

Zend Framework (1.12)를 사용하고 있으며 JSON 파일을 기반으로 테이블을 만들고 싶습니다. 나는 이미 테이블과 필드를 만들었습니다. (현재는 모두 긴 텍스트입니다.) 테이블과 필드를 오른쪽 열에 삽입하면됩니다. 나는이 예들을 따랐다.

http://www.daniweb.com/web-development/php/threads/381669/json-to-mysql-with-php (두 번째 게시물) JSON을 mySQL으로 구문 분석

문제는 내 JSON이 다르게 구성된다는 것입니다. (광산에는 Actie라는 "루트 요소"가 있으며 모든 개체가 포함 된 배열이 포함 된 올바른 용어를 모르는 경우가 있습니다.) 현재이 코드를 사용하고 있습니다.

$actieurl = "http://creative3s.com/thomas/nmdad/actie.json";
        $my_arr = json_decode(file_get_contents($actieurl));

        $db = new Zend_Db_Adapter_Pdo_Mysql(array(
            'host' => 'localhost',
            'username' => 'root',
            'password' => NULL,
            'dbname' => 'zf-tutorial'
            ));

        foreach($my_arr as $key => $value){
            $sql[] = (is_numeric($value)) ? "`$key` = $value" : "`$key` = '" . mysql_real_escape_string($value) . "'"; 
        }

        $sqlclause = implode(",",$sql);
        $query = "INSERT INTO `testerdetest` SET $sqlclause";
        $db->query($query);

하지만 배열을 전달하는 중 오류가 점점 :

Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in C:\Users\Thomas\Documents\GitHub\NMDAD-testing\application\controllers\IndexController.php on line 29

누구든지이 형식의 JSON으로 이것을 해결하는 방법을 알고 있습니까? 어떤 방법 으로든 JSON을 변경할 수는 없다는 점에 유의하십시오. 추가 링크 :

JSON : http://creative3s.com/thomas/nmdad/actie.json 테이블 구조 : http://i.imgur.com/KtXeEuw.png





zend-framework