PDO::P ARAM 用于十进制类型?

2022-08-30 08:18:26

我有 2 个数据库字段

`decval` decimal(5,2)
`intval` int(3)

我有2个pdo查询来更新它们。更新int的那个工作正常

$update_intval->bindParam(':intval', $intval, PDO::PARAM_INT);

但我无法更新十进制字段。我已经尝试了以下3种方法,但没有任何效果

$update_decval->bindParam(':decval', $decval, PDO::PARAM_STR);
$update_decval->bindParam(':decval', $decval, PDO::PARAM_INT);
$update_decval->bindParam(':decval', $decval);

似乎问题出在数据库类型上?是否有类型字段 ?如果没有,我应该使用什么作为解决方法?decimalPDO::PARAMdecimal


答案 1

小数/浮点数没有任何,您必须使用.PDO::PARAMPDO::PARAM_STR


答案 2

UP 必须使用 PDO::P ARAM_STR 相同,并注意,如果数据库中的列的类型为 NUMERIC (M, D) 或十进制 (M, D),则应观察到 M 是字符数精度应为可以输入的字符总数,D 是小数位数。在示例 NUMERIC (10,2) 中,我们有 8 个精确位置的房屋和两个小数位。因此,我们总共有 10 个字符,其中 2 个保留给小数位。


推荐