我无法将值“-1”插入数据库,表格中的字段为int(10)
。
我不知道问题是什么。你可以帮帮我吗。谢谢。
$sql2="INSERT INTO attendance_count(username,date,count_time,appendix)VALUES('$applicant','$date1','-1','$altext')";
mysql_query($sql2);
答案 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