我使用codeigniter将数据插入数据库。但它一直给我低于错误
Unknown column 'Array' in 'field list'</p><p>INSERT INTO `profile` (`loginid`, `name`, `email`, `gender`, `birthday`, `profilePhoto`, `date`) VALUES (Array, 'Zafar Khan', 'xafar@demo.com', 'male', '20.01.1987', '', '2012/11/19')
Filename: /Applications/XAMPP/xamppfiles/htdocs/membership_system/models/model_register.php</p><p>Line Number: 48
以下是发生此错误的代码
public function saveUserProfile() {
$userId = $this->readUserId();
$profile = array(
'loginid' => $userId,
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'gender' => $this->input->post('gender'),
'birthday' => $this->input->post('birthday'),
'profilePhoto' => '',
'date' => date("Y/m/d")
);
$query = $this->db->insert('profile', $profile);
if ($query) {
return true;
} else {
return false;
}
}
更新
这里是readUserId函数
private function readUserId() {
$this->db->select('id');
$this->db->from('login');
$this->db->where('email', $this->input->post('email'));
return $this->db->get()->result();
}
更新2
这是我输出的var_dump
array(1) { [0]=> object(stdClass)#18 (1) { ["id"]=> string(2) "14" } }
答案 0 :(得分:4)
$userId
的值导致未加引号的Array
被输入到被视为列引用的值中。
答案 1 :(得分:2)
似乎$this->readUserId()
返回一个数组。
你能试试reset($this->readUserId());
吗?
在初始化$ profile之前把它放。
或者只是
echo var_dump( $this->readUserId() );
die();
..这样我们就可以看到变量中的内容。
==&GT;编辑:
$ profile必须变成类似
的内容$profile = array(
'loginid' => $userId['id'],
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'gender' => $this->input->post('gender'),
'birthday' => $this->input->post('birthday'),
'profilePhoto' => '',
'date' => date("Y/m/d")
);
==&GT;编辑2:
好的,那么你可以添加
$userId = $userId[0]->id;
在$ profile变量初始化之前。
答案 2 :(得分:0)
您的“用户ID”字段是一个数组。您的帖子中还有另一个“用户ID”。 在视图文件中查找重复的名称。
答案 3 :(得分:0)
问题似乎在$ this-&gt; readUserId()中,它返回一个数组来代替标量。请检查一下。