偽の状態だけがデータベースに保存されると私は変です。 "状態"が真でなければならないとき、私の質問は依然として偽を実行します。コードは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;
}
データベース内のアクティブなフィールドのデータ型は何ですか? mysqlコンソールで誤ったクエリを実行するとどうなりますか? –
あなたのデータベース名が$ tablename = $ this-> table;に設定されていることを確認してください –
追加チェックは '$ state ['active'] =($ this-> input-> post( 'state') == 'true'); ' –