使用Codeigniter将JSON数据插入mysql

问题描述 投票:2回答:1

我有如下所述的json输入解码json响应并将其插入mysql数据库,现在将其转换为Codeigniter我无法理解如何编写控制器和下面代码的模型,请让我知道如何编写控制器和模型,还提供由我编写的控制器和模型

PHP代码

<?php
include ('config.php');
// read json file
date_default_timezone_set('Asia/Kolkata');
$timestamp = time();
$date_time = date("Y-m-d H:i:s", $timestamp);
$createdon = $date_time;
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    // $filename = 'employee.json';
    // $json_data = file_get_contents($filename);
    $json_data = $_POST['QUESTION'];
    //convert json object to php associative array
    $data = json_decode($json_data, true);
    // print_r($data);
    if (is_array($data) || is_object($data)) {
        $jsonData = $data['DATA'];
        $jsonAnswers = $data['ANSWERS'];
        $drcode = $data['DATA']['DRCODE'];
        $divcode = $data['DATA']['DIVCODE'];
        $brdcode = $data['DATA']['BRDCODE'];
        $prdcode = $data['DATA']['PRDCODE'];
        // echo $drmobile." -- ";
        for ($i = 0;$i < sizeof($data['ANSWERS']);$i++) {
            $quecode[$i] = $data['ANSWERS'][$i]['ADCODE'];
            $answer[$i] = $data['ANSWERS'][$i]['ANSWER'];
            $quecodes = $quecode[$i];
            $answers = $answer[$i];
            // echo $quecode[$i]." <--> ".$answer[$i]."<br/>";
            $sql = "INSERT INTO ANSWERS(DRCODE,ADCODE,DIVCODE,BRDCODE,PRDCODE,ANSWERS,CREATEDON)VALUES ('$drcode', '$quecode[$i]', '$divcode', '$brdcode', '$prdcode', '$answer[$i]', '$createdon')";
            $qur = mysql_query($sql);
            if ($qur) {
                $json = array("status" => 1, "msg" => "Data added Successfully!");
            } else {
                $json = array("status" => 2, "msg" => "Already Submitted");
            }
        }
        // echo "<br/>-----------<br/>";

    }
} else {
    $json = array("status" => 0, "msg" => "Request method not accepted");
}
@mysql_close($conn);
/* Output header */
header('Content-type: application/json');
echo json_encode($json);
//close connection

?>

Json输入

{
    "DATA": {
        "DRCODE": "D40504",
        "DIVCODE": 1,
        "BRDCODE": 5,
        "PRDCODE": 5
    },
    "ANSWERS": [{
        "ADCODE": 1,
        "ANSWER": "VERY GOOD"
    }, {
        "ADCODE": 2,
        "ANSWER": "GOOD"
    }, {
        "ADCODE": 3,
        "ANSWER": "SGH"
    }, {
        "ADCODE": 4,
        "ANSWER": "NO"
    }, {
        "ADCODE": 5,
        "ANSWER": "NO"
    }, {
        "ADCODE": 6,
        "ANSWER": "CGHJ"
    }]
}

调节器

 public function feedback_post() {
    $json_data = $this->post('QUESTION');
    $data = $this->json_decode($json_data, true);
    if (is_array($data) || is_object($data)) {
        $jsonData = $this->$data['DATA'];
        $jsonAnswers = $this->$data['ANSWERS'];
        $drcode = $this->$data['DATA']['DRCODE'];
        $divcode = $this->$data['DATA']['DIVCODE'];
        $brdcode = $this->$data['DATA']['BRDCODE'];
        $prdcode = $this->$data['DATA']['PRDCODE'];
        for ($i = 0;$i < sizeof($data['ANSWERS']);$i++) {
            $quecode[$i] = $this->$data['ANSWERS'][$i]['ADCODE'];
            $answer[$i] = $this->$data['ANSWERS'][$i]['ANSWER'];
            $quecodes = $this->$quecode[$i];
            $answers = $this->$answer[$i];
        }
        $insert_array = array('DRCODE' => $drcode, 'DIVCODE' => $divcode, 'BRDCODE' => $speciality, 'PRDCODE' => $prdcode, 'ANSWER' => $answers, 'ADCODE' => $quecodes);
        $feedback_data = $this->Rest_user_model->feedbacksubmission($insert_array);
        if ($feedback_data) {
            $message = ['status' => 1,
            // 'result' => array(),
            'message' => 'Feedback Submitted Successfully'];
        } else {
            $message = ['status' => 2,
            // 'result' => array(),
            'message' => 'Feedback Submitted Successfully'];
        }
        $this->set_response($message, REST_Controller::HTTP_OK);
    }
}
php mysql json codeigniter
1个回答
1
投票

试试这个

public function feedback_post()
{
    $objDate = new DateTime();

    $data = json_decode($this->input->post('QUESTION'), true);
    if (is_array($data)) 
    {
        foreach($data['ANSWERS'] AS $arrAnswer)
        {
            $arrInsertData =
            [
                'DRCODE' => $data['DATA']['DRCODE'],
                'DIVCODE' => $data['DATA']['DIVCODE'],
                'BRDCODE' => $data['DATA']['BRDCODE'],
                'PRDCODE' => $data['DATA']['PRDCODE'],
                'ADCODE' => $arrAnswer['ADCODE'],
                'ANSWERS' => $arrAnswer['ANSWER'],
                'CREATEDON' => $objDate->format('Y-m-d H:i:s'),
            ];

            $feedback_data = $this->Rest_user_model->feedbacksubmission($arrInsertData);
            $message = ($feedback_data) ?   ['status' => 1, 'message' => 'Feedback Submitted Successfully'] :   ['status' => 2, 'message' => 'Already Submitted'];
        }
    }
    else
    {
        $message = ["status" => 0, "msg" => "Request method not accepted"];
    }
    $this->set_response($message, REST_Controller::HTTP_OK);
}

这是对PHP的基本理解 - 但你要问自己 - 如果你有多个答案 - 如果一个失败而一个成功会发生什么?

因为您的示例PHP代码完全错误...

© www.soinside.com 2019 - 2024. All rights reserved.