2017-03-06 95 views
1

我嘗試打電話給我笨活動記錄是這樣的:笨忽略空格活動記錄

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'); 
} 

會產生這樣的:

UPDATE mainchallenge MC JOIN參與者P 4上mc.id_participant = p.id_participant SET order = 0WHEREtype_participant = 「1'和 order = 「1'和challenge_id =‘3’

正如你可以看到,有0和地方之間沒有空格,也是在」 1'和那使我語法錯誤。我該如何克服這一點?謝謝

回答

-1

將變量設置爲字符串。將$ data ['order']替換爲「$ data [order]」。它應該工作。在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

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

這是錯誤的。 –

+0

請提一下爲什麼這是錯誤的。謝謝 –

+0

嘗試一下,看看你會弄明白。 –

0

給予空間。 PHP)使用默認設置爲陣列添加一個新元素。

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

你很確定嗎?你測試過了嗎? –

+0

是的,我測試它的作品 –

0

不確定間距,但使用活動記錄連接使其更具可讀性。

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(); 

我很驚訝的任何間距問題,結果輸出,輸出的最後一次查詢,因爲它建會顯示,如果間距爲CI不正確,或者如果你有另一個語法錯誤...