2016-06-22 8 views
0

Codeigniterがmysqlに0を挿入する理由を知ることができません。私はこれは、インサートは、これは、VaRのダンプデータCodeigniterがmysqlに0を返します

<b>array</b> <i>(size=23)</i> 
    'name' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'123123'</font> <i>(length=6)</i> 
    'description' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'123123'</font> <i>(length=6)</i> 
    'tourist_location' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'true'</font> <i>(length=4)</i> 
    'approved_location' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'true'</font> <i>(length=4)</i> 
</pre> 

ある

function insert($data,$tablename=""){ 
     if($tablename=="") 
      $tablename = $this->table; 
     var_dump($data); 
     $this->db->insert($tablename,$data); 
     return $this->db->insert_id(); 
    } 

起こるMy_modelであり、これはこれはDB enter image description here

での状態である

あなたの例をお見せしましょう私のテーブル構造 table structure

だからどこでコードが失敗するのですか?なぜ私は1を挿入するか、または 'true' dbテーブルの状態は0ですか?

追加情報が必要な場合は、お知らせください。 ありがとうございました!

+0

insert関数を呼び出す場所からのコードを共有しますか? – C2486

+0

私はあなたが他の問題を見ている場合を除いて、私は挿入文を作る直前にvarが真であるので、それは問題ではないと思う? –

+0

あなたがそのコードを共有するなら、あなたの問題を解決するのに役立つでしょう。 – C2486

答えて

2

あなたのtourist_locationとapproved_locationのデータに間違ったタイプがあります。

実際には、文字列「true」を整数フィールドに挿入するようにデータベースに指示しています。データベースは1桁の数字を期待しており、 "真"を受け取ると整数に変換しようとします。結果は、それがより

$data = array(
      'name' => 'xyz', 
      'description' => 'somedescription', 
      'tourist_location' => 1, 
      'approved_location' => 1 
     ); 

ようなものですので、0

はあなたがそれからちょうどそう

<input type="checkbox" name="tourist_location" value="1"> 
<input type="checkbox" name="approved_location" value="1"> 

のようなチェックボックスを持って、このデータを提出するフォームを使用している場合は$データを操作できることですそれが選択であれば、このようなものはうまくいくでしょう。

<select name="tourist_location"> 
    <option value="0">No</option> 
    <option value="1">Yes</option> 
</select> 

私はそれが合理的であることを望みます。

+0

タイピングエラー!何時間も何時間も私を悩ましてくれてありがとうございました;) –

+0

心配はいりません。データベースは、一般的に、あなたが何かチャックしても喜んで受け入れ、彼らは不平を言うことはありません。それはあなたのつま先にあなたを保つ。 –

1

データタイプとしてBOOLEANを使用しています。その場合、0のいずれかを使用することができます。1です。

If TRUE then its 1 If FALSE then its 0 

あなたのDB構造

enter image description here


SQL General Data Types

enter image description here

+0

@aynber入力エラー –

関連する問題