CodeIgniter省略了活动记录中的空间



我尝试以这样的方式调用我的CodeIgniter活动记录:

function updateParticipant($data){
    $final_data = array(
        'order' => $data['order'],
    );
    $this->db->set($final_data);
    $this->db->where('type_participant', $data['type_participant']);
    $this->db->where('order', $data['prev_order']);
    $this->db->where('challenge_id', $data['challenge_id']);
    $this->db->update('mainchallenge mc JOIN participant p on mc.id_participant = p.id_participant');
}

它将产生这样的产生:

更新MAINCHALLENGE MC加入参与者P上的MC.ID_PARTICIPANT = p.id_participant set order = 0 Where type_participant = '1'AND order = '1'and challenge_id ='3'

如您所见,在0和位置之间没有白色空间,也会导致我遇到语法错误。我该如何克服这一点?谢谢

where条件下给出空间

function updateParticipant($data){
$final_data = array(
    'order' => $data['order'],
);
$this->db->set($final_data);
$this->db->where(' type_participant ', $data['type_participant']);
$this->db->where(' order ', $data['prev_order']);
$this->db->where(' challenge_i d ', $data['challenge_id']);
$this->db->update(' mainchallenge mc JOIN participant p on mc.id_participant = p.id_participant ');

}

,或者您可以使用此解决方案

在数据库配置文件(./application/config/database.php)中,添加一个带有默认设置的数组的新元素。

$db['default']['_protect_identifiers']= FALSE;

不确定间距,但使用主动记录加入使其更可读。

function updateParticipant($data){
    $final_data = array(
        'order' => $data['order'],
    );
    $this->db->set($final_data);
    $this->db->where('type_participant', $data['type_participant']);
    $this->db->where('order', $data['prev_order']);
    $this->db->where('challenge_id', $data['challenge_id']);
    $this->db->join('participant p', 'mc.id_participant = p.id_participant');
    $this->db->update('mainchallenge mc');
}

尝试使用此

输出结果
echo $this->db->last_query();

我对任何间距问题感到惊讶,输出最后一个查询,因为构建的最后查询将显示出间距是否不正确,或者是否有其他语法错误...

将变量设置为字符串。将$ data ['order']替换为" $ data [order]"。它应该起作用。

 $final_data = array(
            'order' => "$data[order]",
        );

最新更新