这是我的代码:
数据库设置
<?php
$user="k*********";
$password="*********";
$database="**********";
mysql_connect("localhost",$user,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "CREATE TABLE rn (
PID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(PID),
dait CHAR(10),
rnfl INT ,
)";
mysql_query($query);
mysql_close();
?>
数据库更新
<?php
// Connect to MySQL
mysql_connect("localhost", "*********", "**************") or die(mysql_error());
mysql_select_db("********") or die(mysql_error());
$dait="31/7/2014";
$rnfl=12.9;
// Update
$result = mysql_query("UPDATE rn SET dait='$dait', rnfl='$rnfl' WHERE id=1")
or die(mysql_error());
$result = mysql_query("SELECT * FROM rn WHERE id=1")
or die(mysql_error());
// get the first (and hopefully only) entry from the result
$row = mysql_fetch_array( $result );
echo $row['dait']." - ";
printf('(%5.2d mm)', $row['rnfl']);
?>
这是我在运行更新后得到的:
31/7/2014 - ( 13 mm)
我在寻找的是: -
31/7/2014 - (12.9 mm)
答案 0 :(得分:2)
好吧,您正试图在12.9
类型列中存储浮点数(INT
- 整数。 Ints不支持小数位。所以基本上你的问题归结为&#34;我在商店买了香蕉。为什么它不是苹果?&#34;
如果您想再次rnfl
,请将float
的类型更改为decimal(10,2)
或类似.9
。
答案 1 :(得分:1)
您将rnfl
字段的类型设为int
- 插入数据时将对数据进行舍入。
只需将类型更改为float
,或者,如果您正在处理资金,decimal(10,2)
。