我试图在MySQL数据库中存储百分比值,但是当我尝试将百分比列的值设置为100%时,我得到一个"超出范围的值"错误信息。
我目前正在使用DECIMAL(5,2)类型,我需要能够存储从0%到100%的值(当值为n且不是整数时为2dp)(值为用PHP脚本计算。)
除了触发错误的100%之外,所有值都很好。
我是否误解了某些东西,或者我还缺少其他什么东西?
编辑:该表是使用以下sql
创建的CREATE TABLE overviewtemplate
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(32),
numberOfTests INT NOT NULL DEFAULT 0,
description VARCHAR(255) NOT NULL DEFAULT "Please add a Description",
percentageComplete DECIMAL(5,2),
numberPassed INT NOT NULL DEFAULT 0,
numberFailed INT NOT NULL DEFAULT 0
) ENGINE=MYISAM;
编辑2:这是SQL查询的代码
$numberOfPasses = 5;
$numberOfFails = 5;
$percentageComplete = 100.00;
$sqlquery = "UPDATE `overviewtemplate`
SET numberPassed = {$numberOfPasses},
numberFailed = {$numberOfFails},
percentageComplete = {$percentageComplete}
WHERE description = '{$description}'";
编辑3:已修复 - 我的表名中出现语法错误,这意味着它正在尝试更新错误的表。
答案 0 :(得分:1)
根据您的声明,您应该能够毫无困难地保存999.99。检查您是否设置了不大于100的规则?如果是,则将其设置为小于或等于100.00
它可能处于触发状态。