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



我的数据库中有一个名为 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>";
}

我会尝试浮动两个值以确保您正在比较 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;

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

但是,您可以使用cast()作为波纹管:

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

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

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

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

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

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

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

最新更新