将数据保存到数据库时出现问题

时间:2012-11-19 12:16:29

标签: php codeigniter

我使用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"  } }

4 个答案:

答案 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()中,它返回一个数组来代替标量。请检查一下。