Skip to content
Advertisement

Array to string conversion when calling array

i want to send data array using curl.

        $email = $_SESSION['useremail'];
        $exam_code = $this->input->post('exam_code');
        $bank_question = ['3343', '3345', '3333'];
        $student_answer = ['B', 'A', 'C'];

        $curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL => 'https://url',
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => 'POST',
            CURLOPT_POSTFIELDS => '{
             "email_student" : ' . $email . ',
             "exam_code" : ' . $exam_code . ', 
             "bank_question_id" : ' . $bank_question . ',
             "student_answer" : ' . $student_answer . '
         }',
            CURLOPT_HTTPHEADER => array(
                'x-api-key: ............',
                'Cookie: ci_session=.......'
            ),
        ));

        $response = curl_exec($curl);

        curl_close($curl);
        echo $response;

but while i send data array $bank_question and $students_answer like this, i its always error Array to string conversion . what should i do to send data array?

Advertisement

Answer

You could JSON encode your data like this:

    $aData = [
    'email_student' => $email,
    'exam_code' => $exam_code,
    'bank_question_id' => $bank_question,
    'student_answer' => $student_answer,
];

CURLOPT_POSTFIELDS => json_encode($aData);
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement