INSERT语句中的PDO整数转换整数

时间:2016-08-15 13:40:40

标签: php mysql pdo

我有一个PDO准备语句,它试图在MySQL表中插入四个项目。其中三个是字符串,插入正常。第四个是(在MySQL中)一个长度为3的INT。在PHP脚本中,该值被声明为整数:

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

无论我尝试什么,但是,当执行insert语句时,在数据库中,值的输出为127,而不是200.

我已经尝试了几乎所有我想到的变种,但它固执地拒绝以200的形式进入数据库。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我认为你宣布你的桌子错了。 127是tinyint的最大值,因此可能是你的“整数”是一个小整数。

请编辑您的数据库。

答案 1 :(得分:0)

您的列类型为tinyint。您可以使用以下查询更改列类型:

ALTER TABLE tablename MODIFY columnname INTEGER;