Php 如何知道mysql中的两个日期是否相等

Php 如何知道mysql中的两个日期是否相等,php,mysql,Php,Mysql,我正在尝试获取id和日期匹配的行数。我已经在mysql中运行了这个查询,它运行得很好 SELECT COUNT(*) FROM table WHERE Id = '587762' && RequestDate = '2017-03-10' 但在php中执行时,它不会返回所需的结果。这是我的php文件 <?php $pdo = new PDO('mysql:host=localhost;dbname=personDB','root',''); if(

我正在尝试获取id和日期匹配的行数。我已经在mysql中运行了这个查询,它运行得很好

SELECT COUNT(*) FROM table WHERE Id = '587762' && RequestDate = '2017-03-10'
但在php中执行时,它不会返回所需的结果。这是我的php文件

    <?php
    $pdo = new PDO('mysql:host=localhost;dbname=personDB','root','');
    if($_SERVER['REQUEST_METHOD'] == 'GET'){
        $Id = $_GET['ID'];
        $date = date("Y-m-d", strtotime($_GET['date']));
        $row_count = $pdo->query("SELECT * FROM table WHERE Id = '$Id' AND RequestDate = '$date'")->fetchColumn();
        if($row_count > 0){
            $response = false;
            header('Content-Type: application/json');
            echo json_encode($response);
        }
        else{
            $response = true;
            header('Content-Type: application/json');
            echo json_encode($response);
        }
    }
    ?>


RequestDate没有时间组件。我正在邮递员中检查它,并给出已经存在的值。它应该返回false,但总是返回true。

我认为您使用的是类型字符串而不是日期。使用
strotime()
将字符串转换为日期类型

试试这个:

$date = strtotime($_GET['date']);

变量
$row\u count
不包含行数,而是查询结果。试试这个:

$result = $pdo->query($sql);
$row_count = $result->fetchColumn();

fetchColumn()
函数获取结果第一行的第一列。

当返回一行时,为什么设置
$response=false
?GET['date'的值是多少?@GordonLinoff当存在相同id和id的值时,我想做一些其他事情date@justbaron日期而非时间组件使用了count是的,您在查询中使用了
count(*)
,但这并不意味着查询结果等于
count(*)
。如果您的查询是
selectcount(*),那么从表中选择somethingels
?我不想要结果第一行的第一列。我需要总计行数,但查询返回一个包含1行和1列的“表”。此表中的列名可能是“COUNT(*)”。此表中的单元格包含总行数。我在fetchColumn“调用布尔值中的成员函数fetchColumn()时出错”仍然没有getting@luke数据库中的记录看起来如何?您可以尝试使用以下语法设置
$date
的格式
$formatted=date('Y-m-d H:i:s',$date)
,但随后将其设置为数据库中的格式仍然没有任何结果。我已根据您的评论和回答更新了我的代码。@luke RequestDate的类型是什么?一串