嗨,大家都是程序员。如果输入的值低于db中的值,我想在我的数据库中禁用表更新。代码看起来没问题,但更新总是执行。这是我的代码:
$sql="UPDATE student SET _id_year='$_year' WHERE _index='$_index'";
$check1="SELECT _id_year FROM student WHERE _index='$_index'";
if('$_year'>'$check1')
{
mysqli_query($con,$sql);
}
注意:_id_year和_index是来自DB的值,$_year
,$_index
是输入值。
$con
是与数据库的连接。
答案 0 :(得分:2)
首先执行您的选择查询并获取$check1
。然后比较。
$qry = "SELECT _id_year FROM student WHERE _index='$_index'";
$exec = mysqli_query($con,$qry);
$result = mysqli_fetch_object($result);
$check1 = $result->_id_year ;
此外,您还没有使用单引号。试试这个,
if($_year > $check1)
{
mysqli_query($con,$sql);
}
答案 1 :(得分:1)
使用SafeMysql代码与您编写的代码几乎相同,但它实际上会运行这些查询并使其安全:
$check=$db->getOne("SELECT _id_year FROM student WHERE _index=?s",$_index);
if($_year > $check )
{
$db->query("UPDATE student SET _id_year=?s WHERE _index=?s",$_year,$_index);
}
答案 2 :(得分:0)
您应首先执行$check1
查询,获取结果,然后将其与$_year
变量进行比较
答案 3 :(得分:-1)
总是如此,因为PHP的引用字段不应该被qouted
if($_year>$check1)
{
mysqli_query($con,$sql);
}