Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql查询操作与php的比较_Php_Mysql_Sql - Fatal编程技术网

Sql查询操作与php的比较

Sql查询操作与php的比较,php,mysql,sql,Php,Mysql,Sql,上面的查询工作不正常。它正在显示编号下方的值。我认为转换存在问题。请有人帮助解决此问题 $num=$_POST['data']; $no = (int) $num; $sql = "select * from uploads where id > '$no'" 试试这个 $\u post替换为$\u post 一个变量而不是两个您有Sno=…,它应该是$no=…。这是个打字错误 那个么,查询中的数字不需要撇号,所以不要在这个上下文中使用它们 您还有$\u post而不是$\u post—

上面的查询工作不正常。它正在显示编号下方的值。我认为转换存在问题。请有人帮助解决此问题

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

$\u post
替换为
$\u post


一个变量而不是两个

您有
Sno=…
,它应该是
$no=…
。这是个打字错误

那个么,查询中的数字不需要撇号,所以不要在这个上下文中使用它们


您还有
$\u post
而不是
$\u post
——这是另一个问题。

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

删除撇号:

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

$sql = "select * from uploads where id > $no";
并将$\u POST改为$\u POST

请尝试以下代码:

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

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

尝试解释他哪里出了问题,以及他需要研究哪些领域来充分理解问题空间。除非你复制了它,否则我不确定
$\u post
是否有效;应该是
$\u POST
@user2067403代码的第二行,应该是
$no
不是
Sno
你检查过表中的
id
列是否为整数类型吗?你也不需要两个变量,例如
$no=(int)$\u POST['data'
。你在
的else
中有一个输入错误。请记住,没有大括号的简短形式可能会让非程序员和初学者感到困惑<代码>:)@user2067403:从字符串中删除撇号。正如我所展示的。@user2067403-他是这样做的;
就是问题所在。还要注意,
$no=(int)'
(因为,
$\u POST['data']
为空)将在查询中为您提供
0
。仅供参考。
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";