我的数据库中有一个名为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'>×</a>
<strong></strong>Not enough Funds!
</div>";
}
答案 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)
如果您打算将浮动与角色数据进行比较,可以使用CAST
或CONCAT
。不建议对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