PHP:将MSQL数据库中的浮点值与变量

时间:2018-05-28 10:15:56

标签: php

我的数据库中有一个名为users的表,其中一列名为mon of Float。我想将列与来自分配给变量的texbox的输入进行比较。

$amt_chk = mysqli_query($conn, "SELECT mon FROM users WHERE id = '$user_id'");

       if (isset($_POST['mon']) > ($amt_chk)) {

            $results="<div class='alert alert-danger alert-dismissible'>
                    <a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a>
                    <strong></strong>Not enough Funds!
                  </div>";
       }

2 个答案:

答案 0 :(得分:1)

我会尝试浮动这两个值,以确保您比较2个浮点数:

if (isset($_POST['mon'])) :
    $amt_chk = mysqli_query($conn, "SELECT mon FROM users WHERE id = '$user_id'");
    $mon = (float) $_POST['mon'];
    $amt_float = (float) $amt_chk;
    if ($mon > $amt_float) :
        // do your thing
    endif;
endif;

答案 1 :(得分:1)

如果您打算将浮动与角色数据进行比较,可以使用CASTCONCAT。不建议对MySQL结果进行类型转换,并且必须考虑正在使用和存储的数据类型。更好的方法是对输入数据进行类型转换(在$user_id中),因为它不会与数据库数据混合。

但是,您可以使用cast()如下:

 SELECT CAST(mon AS CHAR) FROM users WHERE id = `$user_id` 

cast函数将结果类型化为您提供的类型。来自MySQL文档:

  

Cast函数和运算符可以将值从一种数据类型转换为另一种数据类型。

https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html

你也可以使用CONCAT,因为它需要字符串参数,并隐式地将float转换为char。

SELECT CONCAT(mon) FROM users WHERE id = `$user_id`

更多官方文档:https://dev.mysql.com/doc/refman/8.0/en/type-conversion.html