无法将值“-1”插入数据库

时间:2013-01-23 08:41:12

标签: php mysql

我无法将值“-1”插入数据库,表格中的字段为int(10)。 我不知道问题是什么。你可以帮帮我吗。谢谢。

$sql2="INSERT INTO attendance_count(username,date,count_time,appendix)VALUES('$applicant','$date1','-1','$altext')";
mysql_query($sql2);

4 个答案:

答案 0 :(得分:1)

不要单引号,因为它是一个int。

答案 1 :(得分:1)

确保该列不是UNSIGNED

答案 2 :(得分:1)

  

文档说它不会存储文字" - "字符,   这意味着它现在可能正在执行另一个签署的INTEGER   字段总是这样做,它存储一个符号位来表示否定   而不是数字。

     

你仍然在号码前面看到一个减号,因为它是   由于该符号位而由MySQL生成。

     

如果您不理解符号位,可以考虑如何签名   byte可以存储-128到127之间的数字,而无符号字节可以存储   存储数字从0到255.那是因为a中的8位之一   签名号码用于存储+/-(1为负数,0为   正数),而其余位提供的数字最多为2 ^ 7(-128或   127)。

     

因此,例如,如果位1111具有符号位,则它们将等于-7   (负+ 4 + 2 + 1),但如果他们没有签名,他们等于15(8 + 4 + 2 + 1)。   它的存储位数仍然相同。

     

你可能想知道为什么签名号码中的负面界限可以使用   第8位,而正边界限于7位的总和   (比第8位少1)。这是因为考虑了10000000   同时是负数和第8位,因为它   -0的表示在00000000中是多余的   代表0.消极和积极之间没有区别   零,所以负最高有效位始终是该值   位本身(但是否定)。

答案 3 :(得分:-1)

您输入值-1的列应为SIGNED

INT(SIGNED) values can be a minimum of-2147483648 to a maximum of 2147483647 INT(UNSIGNED) values can be a minimum of 0 to a maximum of 4294967295