2017-03-06 28 views
1

アクティブなレコードにスペースを省略: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'); 
} 

このように、それが生成されます。

UPDATEのmainchallengeがMC mc.id_participantに参加pを登録しよう= p.id_participantのSET order = 0WHEREtype_participant = 「1'AND order = 「1'ANDchallenge_id = 『3構文エラーに私をリード1'AND』

あなたが見ることができるように、また0とどこの間には空白、ありません」。どうすればこれを克服できますか?ありがとう

答えて

-1

変数を文字列として設定します。 $ data ['order']を "$ data [order]"に置き換えます。それは動作するはずです。

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

これは間違っています。 –

+0

これが間違っている理由を教えてください。ありがとう –

+0

それを試してみて、あなたがそれを把握することを参照してください。 –

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

間隔はCIから間違っている場合は表示され、それが構築されたとして、最後のクエリを出力し、私は任意の間隔の問題の驚いこの

echo $this->db->last_query(); 

で結果を出力してみてくださいまたは別の構文エラー...

関連する問題