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";