我有这样的查询......
$levLimit = $_GET['levLimit'];
$sql = "SELECT * FROM users WHERE `level` < '$levLimit'";
Run Code Online (Sandbox Code Playgroud)
这个工作正常,当levLimit等于任何数字,最多9,一旦我尝试10,它什么都不返回.
这不会给我任何mysql或php错误,有什么明显的明显吗?
您需要将其强制转换(痛苦一点)或将列类型更改为可以执行数学运算的列类型.
MySQL无法按照您现在尝试查询的方式对文本进行数学运算,只能使用整数.
警告:您的代码对SQL注入是开放的.请使用准备好的声明.
参考文献:
您还可以使用(int)GET数组的值:
$levLimit = (int)$_GET['levLimit'];
Run Code Online (Sandbox Code Playgroud)
这不需要准备好的陈述,但总是最好的.
编辑:
"这也没有给我任何mysql或php错误."
那是因为你在查询中将变量括在单引号中,MySQL将其作为字符串读出,并且你说列的类型是VARCHAR.