首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP在MySQL中插入负数时出现的问题

问用PHP在MySQL中插入负数时出现的问题
EN

Stack Overflow用户
提问于 2013-06-14 18:29:26
回答 2查看 6K关注 0票数 0

我正在尝试建立一个简单的web应用程序来跟上我的债务,我想使用相同的数据库表来增加和减少数据。

我使用一个简单的php操作将输入从输入域转换为负数:

代码语言:javascript
复制
$sum2 = $sum*-1; 

$sum作为输入字段:

代码语言:javascript
复制
$sum = $_POST['shuma'];

这个想法是,当我输入一个正数时,我的债务会变大,当我输入一个负数时,我的债务会变小,这是一个简单的想法。

在MySQL数据库中,我将输入插入到:

代码语言:javascript
复制
decimal(7,2) Default:Null

问题是,正输入,即使它被转换成负数,它也不会在MySQL中作为负数插入,它会再次插入正数。问题不在PHP中,因为我对它进行了测试,即使在表单提交并将数据推入MySQL之后,我仍然可以使用PHP中的回显来显示负数。

有谁知道怎么解决这个问题吗?

附注:也许我应该提一下,当我尝试直接从phpmyadmin插入负数时,它会接受同一字段中的负数。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-06-14 18:49:12

将字段类型更改为DECIMAL (10,2)。字段长度定义由您决定。根据您的需求定义length。

在这种情况下,将插入负值。如果没有,请执行您的查询并直接在mysql中执行。因为对于另一个字段的问题,即使字段类型是DECIMAL,也不能在表中插入负值。

票数 2
EN

Stack Overflow用户

发布于 2013-06-14 18:49:13

嗯,我尝试对这两个字段使用相同的输入字段,只使用一个复选框,当复选框被选中时,它是一个负数,否则它是正数

关于那条评论。

也就是说,你有

代码语言:javascript
复制
<input type="checkbox" name="negative"/>

<input type="text" name="sum" />
<?php
$sum = (int)$_POST['sum'];
...

所以你可以有,比如说两种方法:

代码语言:javascript
复制
function increase($value) {
  return query("UPDATE table SET value = value + $value");
}

和

代码语言:javascript
复制
function decrease($value) {
  return query("UPDATE table SET value = value - $value");
}

因此,您正在检查:

代码语言:javascript
复制
if(isset($_POST['negative']) {
  decrease($sum);
}
else {
  increase($sum);
}

但是,这些查询只是一个示例,我只是想解释一下其中的逻辑,其中您不需要添加带负号的数字,但您可以根据选中的输入更改查询

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17106432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档