我无法将值“-1”插入数据库,表设置字段为int(10)
. 我不知道问题是什么。你可以帮帮我吗。谢谢你。
$sql2="INSERT INTO attendance_count(username,date,count_time,appendix)VALUES('$applicant','$date1','-1','$altext')";
mysql_query($sql2);
不要放单引号,因为它是一个 int。
确保列不是UNSIGNED
文档说它不会存储文字“-”字符,这意味着它现在可能正在做其他带符号的 INTEGER 字段一直在做的事情,而是存储一个符号位来表示负数。
您仍然会在数字前看到一个减号,因为它是由 MySQL 作为该符号位的结果生成的。
如果你不了解符号位,可以考虑有符号字节如何存储 -128 到 127 的数字,而无符号字节可以存储 0 到 255 的数字。这是因为有符号数的 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 是多余的。负零和正零之间没有区别,因此负的最高有效位始终是该值该位本身(但为负)。
您输入值 -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