【发布时间】:2015-11-26 02:18:55
【问题描述】:
我正在尝试将货币数据存储在 mysql 中。在这里,我使用了decimal 和double 数据类型。
这是我的表结构:
CREATE TABLE IF NOT EXISTS transactions (
tb_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tb_our_rate DECIMAL(15, 2) NOT NULL,
tb_bank_rate DECIMAL(15, 2) NOT NULL,
tb_lkr_funds DOUBLE(15, 2) NOT NULL,
tb_aud_funds DOUBLE(15, 2) NOT NULL,
PRIMARY KEY (tb_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
我尝试在这些列中插入一些值。这是我插入的值。
133.11
120.20
-12312,123,123.02
-12312,231,423.32
这是它插入数据库的方式:
mysql> select * from transactions\G
*************************** 1. row ***************************
tb_our_rate: 13311.00
tb_bank_rate: 12020.00
tb_lkr_funds: -1231212312302.00
tb_aud_funds: -1231223142332.00
date_added: 2015-11-26 07:36:01
*************************** 2. row ***************************
更新: 这就是我的插入查询的工作方式:
$our_rate = filter_input(INPUT_POST, 'our_rate', FILTER_SANITIZE_NUMBER_FLOAT);
$bank_rate = filter_input(INPUT_POST, 'bank_rate', FILTER_SANITIZE_NUMBER_FLOAT);
$lkr_funds = filter_input(INPUT_POST, 'lkr_funds', FILTER_SANITIZE_NUMBER_FLOAT);
$aud_funds = filter_input(INPUT_POST, 'aud_funds', FILTER_SANITIZE_NUMBER_FLOAT);
$query = "INSERT INTO transaction_banks(
tb_our_rate
, tb_bank_rate
, tb_lkr_funds
, tb_aud_funds
, date_added
) VALUES (?, ?, ?, ?)";
$insert_stmt = $mysqli->prepare($query);
if ($insert_stmt){
$insert_stmt->bind_param('dddd',
$our_rate
, $bank_rate
, $lkr_funds
, $aud_funds
);
$insert_stmt->execute();
}
谁能告诉我这是什么问题?
【问题讨论】:
-
为一件事丢掉逗号
-
是的,十进制值也插入不正确
-
显示创建表语句和实际插入语句。不要描述他们
-
用表格结构更新问题
-
Drew 的意思是在将逗号插入表格之前将其丢失。在插入之前正确格式化您的号码。