比较运算符用PHP查询SQL

时间:2013-02-16 12:00:50

标签: php mysql sql

$num=$_POST['data'];
$no = (int) $num;
$sql = "select * from uploads where id > '$no'"

以上查询无法正常工作。它显示的是no.I以下的值。我认为转换的问题。有人请帮忙解决这个问题

5 个答案:

答案 0 :(得分:1)

您在值周围有撇号,因此值将被比较为字符串,而不是数字。例如,字符串值10小于字符串值2

删除撇号:

$sql = "select * from uploads where id > $no";

答案 1 :(得分:1)

请尝试使用此代码:

if ( empty( $_POST['data'] ) ){
    // show error message
    echo "No data received";
    // use a default values
    $num = 0;
}
else 
    $num=$_POST['data'];

$no = intval($num);
$sql = "select * from uploads where id > $no";

尝试使用intval而不是强制转换为int

答案 2 :(得分:0)

您有Sno = ...,它应该是$no = ...。这是一个错字。

然后,查询中的数字不需要撇号,因此不要在此上下文中使用它们。

您还有$_post而不是$_POST - 这是另一个问题,variables in PHP are case-sensitive

答案 3 :(得分:0)

试试这个

$sql = "select * from uploads where id > ".$no;

并且还放置$ _POST而不是$ _post

答案 4 :(得分:-1)

$no = (int) $_POST['data']; //wrong variable declaration ?
$sql = "select * from uploads where id > $no";

试试这个。

$_post替换为$_POST

一个变量而不是两个