数据库转换十进制数错误

时间:2017-11-02 作者:Mg10

自定义表单采用十进制,但db插入整数,但后面有一个0。为什么它不能给我正确的十进制数?

Db字段

    fiske_vaegt DECIMAL( 2,1 ) NOT NULL,
表单输入字段

    <p><input type="number" step="any" name="fiske_vaegt" id="fiske_vaegt" />kg</p>
检查fiske\\u vaegt字段,如果我输入2.4,它会将其更改为2.0,并将2.7更改为3.0enter image description here

有谁对这个该死的问题有经验吗?

邮递

    if ( isset( $_POST[\'submit\'] ) ){
$fiske_vaegt = $_POST[\'fiske_vaegt\'];
}

插入

$registrering = $wpdb->insert( 
$wpdb->prefix . \'registreringer\',
    array(
        \'fiske_vaegt\'       => $fiske_vaegt
        ),
    array(
        \'%d\'
        )
    );

2 个回复
最合适的回答,由SO网友:sakibmoon 整理而成

在内部$wpdb->insert, 您正在使用%d 用于存储整数,使用%f 相反,它将存储浮点/十进制值。

$registrering = $wpdb->insert( 
    $wpdb->prefix . \'registreringer\',
    array(
        \'fiske_vaegt\'       => $fiske_vaegt
    ),
    array(
        \'%f\'
    )
);

SO网友:Drupalizeme

“%d”修饰符用于整数,而不是小数使用%f(浮点或%s字符串),它将正确保存它。

结束

相关推荐

我可以在WordPress的特定页面上运行自定义php吗?

我正在制作一个wp站点,作为我不久前设计的内部系统的新前端。我希望能够运行定制php,从我的数据库(mysql)中获取不同的数据位和片段,并显示动态数据等,但似乎无法做到这一点。我认为代码片段插件可能会有所帮助,但虽然它确实运行自定义PHP,但它不能在每页的基础上调用,而是无论我在哪里都可以运行,这是不合适的。欢迎任何帮助。