Php 无法指定负值
Php 无法指定负值,php,mysql,Php,Mysql,更新帖子集投票数=投票数+1,其中id='$id' 当值为零时,上述方法有效,但当我减去(当前值为0)时: 更新帖子集投票数=投票数-1,其中id='$id' 它有一个错误。为什么会这样 数据类型为int使投票列签名(因此取消选中未签名复选框) 无符号整数列(大多数工具中的默认值)只能包含正整数。有符号整数有一个额外的位用于-(因此它们支持负值)。使投票列有符号(因此取消选中无符号复选框) 无符号整数列(大多数工具中的默认值)只能包含正整数。有符号整数有一个额外的位用于-(因此它们支持负值)。A
更新帖子集投票数=投票数+1,其中id='$id'
当值为零时,上述方法有效,但当我减去(当前值为0)时:
更新帖子集投票数=投票数-1,其中id='$id'
它有一个错误。为什么会这样
数据类型为int使投票列签名(因此取消选中未签名复选框)
无符号整数列(大多数工具中的默认值)只能包含正整数。有符号整数有一个额外的位用于-(因此它们支持负值)。使投票列有符号(因此取消选中无符号复选框)
无符号整数列(大多数工具中的默认值)只能包含正整数。有符号整数有一个额外的位用于-(因此它们支持负值)。
ALTER TABLE POST修改BIGINT有符号默认值0代码>
类似的内容应该会有所帮助。altertableposts修改BIGINT签名默认值0代码>
类似的内容应该会有所帮助。第一次运行查询,按照Leon的建议将投票设置为签名列
ALTER TABLE t1 MODIFY votes BIGINT SIGNED;
首先运行查询,使投票成为Leon建议的签名列
ALTER TABLE t1 MODIFY votes BIGINT SIGNED;
毫无疑问,你有一个。这些类型的最小值均为零,因此不能将这些类型设置为负值
要么更改代码以避免这种情况发生,要么将数据类型更改为有符号数据类型
前者可以通过以下方式完成:
update posts set votes = votes - 1 where id = '$id' and votes > 0
alter table post modify votes int signed
后者与以下内容类似:
update posts set votes = votes - 1 where id = '$id' and votes > 0
alter table post modify votes int signed
毫无疑问,你有一个。这些类型的最小值均为零,因此不能将这些类型设置为负值
要么更改代码以避免这种情况发生,要么将数据类型更改为有符号数据类型
前者可以通过以下方式完成:
update posts set votes = votes - 1 where id = '$id' and votes > 0
alter table post modify votes int signed
后者与以下内容类似:
update posts set votes = votes - 1 where id = '$id' and votes > 0
alter table post modify votes int signed
我认为这不是一个错误,而是一个警告。您可以包含错误消息吗?您在投票
列中使用的数字数据类型是什么?它允许负值吗?我不认为这是一个错误,但一个警告。您可以包含错误消息吗?您在投票
列中使用的数字数据类型是什么?它允许负值吗?在mysql CLI客户端中哪里可以找到复选框?不,在这种情况下,他应该使用您的查询。虽然我的解释可以帮助他理解为什么。我如何在phpmyadmin中做到这一点?@user1099531,他已经在phpmyadmin中解释了如何做到这一点。如果您曾经使用过它,您就不需要一个带有解释性舞蹈的图形图来找到该复选框。不过,实现一个带有复选框的CLI可能会更好。所以[x]表示无符号,[]表示有符号。在phpMyAdmin中,如果查看表结构,可以在attributes字段中看到无符号值。要更改此设置,请单击铅笔并清除属性下拉列表。在mysql CLI客户端中哪里可以找到复选框?不,在这种情况下,他应该使用您的查询。虽然我的解释可以帮助他理解为什么。我如何在phpmyadmin中做到这一点?@user1099531,他已经在phpmyadmin中解释了如何做到这一点。如果您曾经使用过它,您就不需要一个带有解释性舞蹈的图形图来找到该复选框。不过,实现一个带有复选框的CLI可能会更好。所以[x]表示无符号,[]表示有符号。在phpMyAdmin中,如果查看表结构,可以在attributes字段中看到无符号值。要更改此设置,请单击铅笔并清除属性下拉列表。