【问题标题】:Inserting JSON data into mysql using Codeigniter使用 Codeigniter 将 JSON 数据插入 mysql
【发布时间】:2018-05-31 15:46:39
【问题描述】:

我有下面提到的 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】:

    试试这个

    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 代码完全是错误的......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2015-01-09
      • 1970-01-01
      相关资源
      最近更新 更多