2016-08-15 3 views
0

У меня подготовленный оператор PDO, который пытается вставить четыре элемента в таблицу MySQL. Три элемента являются строками и вставляются штрафом. Четвертый (в MySQL) INT длины 3. В PHP скрипта значение объявляется как целое число:Целочисленное целое целое число PDO в заявлении INSERT

$code = 200; 

Тогда вместе с другими параметрами вставляется через подготовленное заявление:

$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(); 

Независимо от того, что я стараюсь, хотя, в то время как оператор вставки выполняется, в базе данных значение не выходит, как 127, а не 200.

Я пробовал почти каждый выбор я думать, но он упрямо отказывается войти в базу данных как 200. Любые предложения?

+6

Является ли ваш тип столбца 'tinyint'? Это будет максимальное значение до 127. – Daan

+0

О, лицо, встретиться ладонь. Да, это так, спасибо. –

+0

@Daan, как я могу повернуть ваш комментарий в принятом ответе? –

ответ

0

У вас есть тип столбца tinyint. Вы можете изменить тип столбца по следующему запросу:

ALTER TABLE tablename MODIFY columnname INTEGER; 
+0

Вот и все :) Спасибо за этот короткий код;) – Marcel1997

+0

Отлично, спасибо. –

0

Я думаю, что вы неправильно указали свой стол. 127 - максимальное значение tinyint, поэтому может быть, что ваше «целое число» является tinyinteger.

Так что отредактируйте свою базу данных, пожалуйста.

Смежные вопросы