使用PHP检查应该进行表更新

时间:2013-04-10 15:19:56

标签: php mysqli

嗨,大家都是程序员。如果输入的值低于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是与数据库的连接。

4 个答案:

答案 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);
 }