微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-EXISTS总是返回真正的简单查询

我使用此代码检查条目是否已经存在,但查询似乎总是返回true.当我在外壳上使用相同的查询时,它可以正常工作.请记住,食品名是主键.

$query = "SELECT EXISTS ( SELECT * FROM Food WHERE foodname = '$food_name')";
    $result = pg_query($conn,$query) or die("Query Could not be executed");
    if($result)
    {
        echo 'food already exists: ';
        echo $food_name;
        printf("\n");
    }
    else
    {
        echo 'new food inserted';
        printf("\n");
        $query = "INSERT INTO food VALUES ('$food_name','$food_price','$food_date')";
        $result = pg_query($conn,$query) or die("Query Could not be executed");
    }

问题:我像“下载下载”所说的那样对其进行了修改,并且它也可以与Kettners的答案一起使用,但是由于找到一个对而停止它的存在,不是更快地检查一个条目是否已经存在吗?有没有使用EXISTS的查询可以在这种情况下使用? Thnx寻求帮助.

答案:看完所有内容后,你们说以下是我选择使用的东西,它既有效又使用EXISTS.

$query = "SELECT 1 FROM food WHERE EXISTS ( SELECT * FROM Food WHERE foodname = '$food_name')";
        $result = pg_query($conn,$query) or die("Query Could not be executed");
        $row = pg_fetch_row($result);
        if($row[0])
        {
            echo 'food already exists: ';
            echo $food_name;
            printf("\n");
        }
        else
        {
            echo 'new food inserted';
            printf("\n");
            $query = "INSERT INTO food VALUES ('$food_name','$food_price','$food_date')";
            $result = pg_query($conn,$query) or die("Query Could not be executed");
        }

解决方法:

试试这个:

  $query="SELECT * FROM Food WHERE foodname = '$food_name'";
  $result = pg_query($conn,$query) or die("Query Could not be executed");

  if(pg_num_rows($result )>=1){
     echo 'food already exists: ';
     echo $food_name;
     printf("\n");
  }
else{
        echo 'new food inserted';
        printf("\n");
        $query = "INSERT INTO food VALUES ('$food_name','$food_price','$food_date')";
        $result = pg_query($conn,$query) or die("Query Could not be executed");
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐