Не могу вставить данные через остальные API - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь использовать rest api в codeigniter для вставки данных.

Я пытаюсь это

    public function sensor_post(){
    $data = array(
                'sensor_id'   => $this->input->post('sensor_id'),
                'value'       => $this->input->post('value'));

    $insert = $this->db->insert('measurement', $data);

    if ($insert) {
        $this->response($data, 200);
    } else {
        $this->response(array('status' => 'fail', 502));
    }

  }

И звоню http://localhost/rest_iot/index.php/iot/sensor?sensor_id=1&value=37

Я пытаюсь сделать это в пост-человеке, и я получаю такую ​​ошибку. Я думаю, что я заполнил значение, почему это случилось?

   <h1>A Database Error Occurred</h1>
    <p>Error Number: 1048</p>
    <p>Column 'sensor_id' cannot be null</p>
    <p>INSERT INTO `measurement` (`sensor_id`, `value`) VALUES (NULL, NULL)</p>
    <p>Filename: C:/xampp/htdocs/rest_iot/system/database/DB_driver.php</p>
    <p>Line Number: 691</p>

Ответы [ 4 ]

0 голосов
/ 15 апреля 2020

Если вы отправляете данные внутри URL, вы отправляете их через GET. Однако ваш код пытается получить данные, отправленные через POST. Я полагаю, в codeigniter вы можете просто написать код следующим образом, чтобы получить его как GET:

        'sensor_id'   => $this->input->get('sensor_id'),
        'value'       => $this->input->get('value')
0 голосов
/ 15 апреля 2020

Либо вы отправляете данные через GET или POST? Предполагая, что $this->post('sensor_id') вы ищете POST, но отправляете через GET sensor_id=1&value=37.

Отправляете данные методом POST или ... извлекаете через GET

0 голосов
/ 15 апреля 2020

В ваших полях сообщений нет данных.

public function sensor_post()
    {
        $data = array(
            'sensor_id'   => $this->input->post('sensor_id'),
            'value'       => $this->input->post('value')
        );

        $insert = $this->db->insert('measurement', $data);

        if ($insert) {
            $this->response($data, 200);
        } else {
            $this->response(array('status' => 'fail', 502));
        }
    }

Это будет работать для вас.

0 голосов
/ 15 апреля 2020

Попробуйте также связать переменную input. Вот так

$this->input->post('sensor_id');
$this->input->post('value');

Чтобы получить все переменные записи,

print_r($this->input->post());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...