我尝试在codeigniter中使用rest api插入数据。
我试试这个
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&值=37
我在post-man中尝试了这个,但我得到了这样的错误。我想我已经填补了价值,为什么会发生这种事?
<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>
如果在URL中发送数据,则通过GET发送。但是,您的代码正在尝试接收通过POST发送的数据。我认为在codeigniter中,您可以简单地编写如下代码,以接收GET:
'sensor_id' => $this->input->get('sensor_id'),
'value' => $this->input->get('value')
您是通过GET还是POST发送数据?假设$this->post('sensor_id')
您正在寻找POST,但通过GETsensor_id=1&value=37
发送。
通过POST方法发送数据或。。。通过GET 检索
您的post字段中缺少输入。
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));
}
}
这对你有用。