PHP:将MSQL数据库中的浮点值与变量进行比较

PHP:将MSQL数据库中的浮点值与变量进行比较,php,Php,我的数据库中有一个名为users的表,其中一列名为mon,类型为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-dang

我的数据库中有一个名为users的表,其中一列名为mon,类型为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>";
       }
$amt\u chk=mysqli\u query($conn,“从用户中选择mon,其中id=“$user\u id”);
如果(isset($_POST['mon'])>($amt\u chk)){
$results=”
资金不足!
";
}

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

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;

我将尝试浮动这两个值,以确保比较两个浮动:

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;

如果要将浮点与字符数据进行比较,可以使用
CAST
CONCAT
。不建议对MySQL结果进行类型转换,您必须考虑正在使用和存储的数据类型。更好的方法是键入输入数据(在
$user\u id
中),因为它不会与数据库数据混合

但是,您可以使用下面的
cast()

 SELECT CAST(mon AS CHAR) FROM users WHERE id = `$user_id` 
cast
函数类型将结果转换为您提供的类型。从MySQL文档中:

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

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

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

有关官方文档的更多信息:

如果要将浮点与字符数据进行比较,可以使用
CAST
CONCAT
。不建议对MySQL结果进行类型转换,您必须考虑正在使用和存储的数据类型。更好的方法是键入输入数据(在
$user\u id
中),因为它不会与数据库数据混合

但是,您可以使用下面的
cast()

 SELECT CAST(mon AS CHAR) FROM users WHERE id = `$user_id` 
cast
函数类型将结果转换为您提供的类型。从MySQL文档中:

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

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

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

更多信息请参见官方文档:

在sql查询
中“从用户中选择mon,其中id='$user\u id'和mon='$\u POST['mon']”“
。。。。。这是一个示例查询。我建议将PDO与bind参数一起使用。您尝试执行哪种比较,大于、等于、小于、不等于,并且您还没有说明您的问题。您可以详细说明一下吗?你到底想解决什么问题?对不起,如果我之前不清楚的话。它应该像一个支付系统一样工作。我发布的代码应该检查数据库中还剩下多少钱(mon),并在用户试图发送的钱比他/她多时发出警告。在sql查询中
“从用户中选择mon,其中id='$user\u id'和mon='$\u POST['mon']”“
。。。。。这是一个示例查询。我建议将PDO与bind参数一起使用。您尝试执行哪种比较,大于、等于、小于、不等于,并且您还没有说明您的问题。您可以详细说明一下吗?你到底想解决什么问题?对不起,如果我之前不清楚的话。它应该像一个支付系统一样工作。我发布的代码应该是检查数据库中还有多少钱(mon),并在用户试图发送比他/她有更多的钱时发出警告。