PHP MYSQL将数据库值与POST值进行比较

时间:2013-12-31 18:33:15

标签: php mysql

这是一个非常简单的问题,我只是无法理解对不起。我有这个PHP代码,它获取我的表单值,然后将它与存储在数据库中的值进行比较。这很好。

但是我不确定如何根据此查询编写此逻辑:

如果发布值=数据库值{ //做一些事情}其他事情{//做别的事情}

if (empty($_POST['order_id']) === false) {
    // prepare data for inserting 
    $order_id = htmlentities(trim($_POST['order_id']));
    $order_id = preg_replace("/[^0-9]/","", $order_id);

    $result = mysqli_query($con,"SELECT * FROM listings WHERE order_id = $order_id");
    $row    = mysqli_fetch_assoc($result);

    echo $row['order_id'];

}

解决:

解决了这个问题,我知道这是一个愚蠢的问题!在代码末尾只需要这个:

if($order_id === $row['order_id']) {
    echo 'found';
} else {
    echo 'not found';
}

4 个答案:

答案 0 :(得分:3)

尝试

If ($result->num_rows === 1) { do something } else { do something else }

答案 1 :(得分:0)

由于您在查询中执行了业务逻辑,因此可以使用

if( ! is_null($row)) {
   // do
} else {
   // nothing
}

答案 2 :(得分:0)

我是否读过“如果发布的值=数据库值”?你刚才提到了order_id吗?

if ($row['listingName'] == $_POST['frm_listingName']) {
    // something
}
else {
    //something else
}

答案 3 :(得分:0)

检查此代码:

if (empty($_POST['order_id']) === false) {
    // prepare data for inserting 
    $order_id = htmlentities(trim($_POST['order_id']));
    $order_id = preg_replace("/[^0-9]/","", $order_id);

    $result = mysqli_query($con,"SELECT * FROM listings WHERE order_id = $order_id");

    if(mysqli_num_rows($result)>0)
    {
        //Match found. do something.
    }
    else
    {
        //No match found. do something.
    }
}

N.B。代替mysqli_num_rows($result),您还可以使用$result->num_rows