我有一个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的形式进入数据库。有什么建议吗?
答案 0 :(得分:0)
我认为你宣布你的桌子错了。 127是tinyint的最大值,因此可能是你的“整数”是一个小整数。
请编辑您的数据库。
答案 1 :(得分:0)
您的列类型为tinyint。您可以使用以下查询更改列类型:
ALTER TABLE tablename MODIFY columnname INTEGER;