Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法指定负值_Php_Mysql - Fatal编程技术网

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字段中看到无符号值。要更改此设置,请单击铅笔并清除属性下拉列表。