2016-08-06 6 views
0

偽の状態だけがデータベースに保存されると私は変です。 "状態"が真でなければならないとき、私の質問は依然として偽を実行します。コードはDB内の偽の値のみを更新しますが、真ではありません。

私は私が私のログ&データベース内のデータを、次の取得位置を無効にする要求が適切に

に更新されていることを確認した場合、この機能を備えたコントローラ

public function change_active_state_post() 
{ 
    $id['id_location'] = $this->input->post('id_location'); 
    $state['active'] = $this->input->post('state'); 
    var_dump($state['active']); 
    $this->locations->update($state, $id); 
} 

これは

function update($data,$conditions,$tablename=""){ 
    if($tablename=="") 
     $tablename = $this->table; 
    $this->db->where($conditions); 
    $this->db->update($tablename,$data); 
    var_dump($this->db->last_query()); 
    return $this->db->affected_rows(); 
} 

MY_Model更新機能である持っています

Location.php:196:string 'false' (length=5) 
MY_model.php:46:string 'UPDATE `Locations` SET `active` = 'false' 
WHERE `id_location` = '2'' (length=67) 

しかし、私がリクエストすると場所をアクティブに私は私のログ&とデータベースの値のデータを以下の取得は

Location.php:196:string 'true' (length=4) 
MY_model.php:46:string 'UPDATE `Locations` SET `active` = 'true' 
WHERE `id_location` = '2'' (length=66) 

問題

が活性カラム値1または真で更新の得ることは決してないということです更新されません。それは0のままですが、1から0にすることを忘れた場合は、それはいつもうまくいくでしょう。この追加のチェックが助けてくれた

UPDATE

事前にありがとう:あなたは任意の付加的な情報の私が知っていると私は提供してくださいが必要な場合は、データベース内の

活性カラム型がtinyint(1)

ですデータを正しく挿入するために

if($this->input->post('state') == 'true'){ 
    $state['active'] = true; 
}else{ 
    $state['active'] = false; 
} 
+0

データベース内のアクティブなフィールドのデータ型は何ですか? mysqlコンソールで誤ったクエリを実行するとどうなりますか? –

+0

あなたのデータベース名が$ tablename = $ this-> table;に設定されていることを確認してください –

+0

追加チェックは '$ state ['active'] =($ this-> input-> post( 'state') == 'true'); ' –

答えて

1

ここでMySQLでは

MY_model.php:46:string 'UPDATE `Locations` SET `active` = 'true' 

tinyint(1)カラムに入れたときに適切な数値がなくもないので、両方の文字列'true''false'は、0に変換される:それは文字列として挿入されているようが引用されています。

値を使用すると01となります。また、MySQLは定数FALSE0)とTRUE1)を定義しているため、引用符で囲まずに文字列として挿入しない限り、これらの定数も機能します。

+0

私はmysqlを使用しています。 Okは文字列を "true、false"に変換するテストを実行しますが、これは自動的に行われるべきだとわかっています –

+0

Yep!私は私の解決策で質問を更新しました。私は "真、偽"として挿入するためにいくつかの追加チェックをしなければなりませんでした。ヘルプのためのThx! –

関連する問題