Php PDO获取返回零

Php PDO获取返回零,php,pdo,Php,Pdo,我有这段代码,我在前两个小时测试它,但无法理解为什么TodayaAttendanceCount没有返回0 $sqlCheckLoginEntryCount = "SELECT Count(*) TodayAttendanceCount FROM AttendanceMachineLogin WHERE Date(RecordAddDateTime) = :RecordAddDateTime

我有这段代码,我在前两个小时测试它,但无法理解为什么
TodayaAttendanceCount
没有返回0

    $sqlCheckLoginEntryCount = "SELECT Count(*) TodayAttendanceCount FROM AttendanceMachineLogin
                                WHERE Date(RecordAddDateTime) = :RecordAddDateTime
                                AND TimeTrackId = :TimeTrackId";

   $statementEntryCount = $connPDO->prepare($sqlCheckLoginEntryCount);

   $queryParams = array(
        ':TimeTrackId'          =>    $TimeTrackId,
        ':RecordAddDateTime'    =>    $RecordAddDateTime
    );

   $statementEntryCount->execute($queryParams);

   $queryData = $statementEntryCount->fetch();

   echo '\n ';
   //var_dump($queryData);
   echo "\n Attendance Count". $queryData['TodayAttendanceCount'] ." ;";

我在MySqlWorkbench中执行了相同的查询,该查询工作正常,并且有数据,从数据库端也可以正常运行。

删除
部分的
$queryParams
。不需要它。代码如下所示

$queryParams = array(
    'TimeTrackId'          =>    $TimeTrackId,
    'RecordAddDateTime'    =>    $RecordAddDateTime
);
试试这个:

    $sqlCheckLoginEntryCount = "SELECT Count(*) As TodayAttendanceCount FROM AttendanceMachineLogin
                                WHERE Date(RecordAddDateTime) = ':RecordAddDateTime'
                                AND TimeTrackId = :TimeTrackId";

   $statementEntryCount = $connPDO->prepare($sqlCheckLoginEntryCount);

   $queryParams = array(
        'TimeTrackId'          =>    $TimeTrackId,
        'RecordAddDateTime'    =>    $RecordAddDateTime
    );

   $statementEntryCount->execute($queryParams);

   $queryData = $statementEntryCount->fetch(PDO::FETCH_ASSOC);

   echo '\n ';
   //var_dump($queryData);
   echo "\n Attendance Count ". $queryData['TodayAttendanceCount'];

希望我能进一步推动您。

我做了,但这没有任何区别。我认为一切正常,您必须在phpmyadmin中直接运行sql检查结果getting@whoami是的,正如我在问题中提到的,我已经这样做了。它工作正常。您只是缺少了
作为
,在您的查询中不应该是
选择Count(*)作为TodayAttendanceCount
?没有问题仍然存在。我用冒号做了很多查询。这没什么区别这个怎么样$queryData->TodayattendanceCount这不是写入,按预期引发异常。解释您所做的更改以及如何解决问题会有所帮助。@NigelRen
SQL
查询会将
作为
关键字遗漏。所需值的数组在数组键中不应该有前面的冒号。
由于
在MySQL中是可选的,也请检查一下,但我们不应该依赖这种行为,在官方文档中,冒号是常用的。我赞成不使用未记录的特性,但在正常工作的情况下,两者之间存在差异(但不应该)和一些根本不起作用的东西。因此,尽管改变它很好,但它能解决OP的问题吗?