2016-08-15 1 views
0

4つの項目をMySQLテーブルに挿入しようとしているPDO準備文があります。 3つの項目は文字列であり、細かく挿入されています。他のパラメータと一緒に続いPDO整数をINSERT文で変換する

$code = 200; 

が準備された文を介して挿入されている:

第四は、(MySQLでは)値を整数として宣言されているPHPスクリプトで長さ3のINTであります しかし
$stmt = $this->db->prepare('INSERT INTO table (value1,value2,value3,code) VALUES (:value1,:value2,:value3,:code)'); 
....(three bindValues for the other items) 
$stmt->bindValue(':code', (int) $code, PDO::PARAM_INT); 
$stmt->execute(); 
どんなに私がしようとするもの

、insert文が実行されている間は、データベース内の値を127として出ている、いない200

私はかなり私が考えるすべての多様性を試してみました、しかし、それは頑固に200としてデータベースに入ることを拒否します。

+6

カラムタイプは「tinyint」ですか?それは127に値を最大にします。 – Daan

+0

ああ、顔、手のひらを満たす。はい、ありがとうございます。 –

+0

@ Daan、あなたのコメントを受け入れられた回答にするにはどうすればよいですか? –

答えて

0

あなたは列タイプがtinyintです。

ALTER TABLE tablename MODIFY columnname INTEGER; 
+0

それはそれです:)この短いコードのおかげで;) – Marcel1997

+0

素晴らしい、ありがとう。 –

0

あなたのテーブルが間違っていると思います。 127はtinyintの最大値ですので、あなたの "整数"は小さな整数である可能性があります。

データベースを編集してください。

関連する問題