2013-01-13 63 views
1

我有下面的PDO語句,我試圖找到是否有與該語句相匹配的行,如果返回1,則返回1,然後回顯「有匹配」。由於某些原因,即使我的數據庫明顯在第24行有匹配,它仍然會返回錯誤。我希望有人能爲我發現錯誤。PDO語句可能不正確

的PDO聲明:

<?php 

$employeeID = 1; 
$dateToday = "01/12/13"; 

try{ 
    $conn = new PDO('mysql:host=localhost;dbname=timecard', 'username', 'password'); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $conn->prepare("SELECT COUNT(*) FROM timeRecords WHERE `timeOut`= 'NULL' AND `employeeID`= :employeeID AND `date`= :dateToday"); 

    $stmt->execute(array(':employeeID' => $employeeID, ':dateToday' => $dateToday)); 
    } catch(PDOException $e){ 
     echo'ERROR: ' . $e->getMessage(); 
    } 

if($stmt->fetchColumn() > 0){ 
    echo "There was a match!"; 
} else { 
    echo "There was no Match"; 
} 

?> 

數據庫:

+----+------------+----------+------------------+---------------------+-----------+------------+-----------+------------------+ 
| id | employeeID | date  | timeIn   | jobDescription  | equipType | unitNumber | unitHours | timeOut   | 
+----+------------+----------+------------------+---------------------+-----------+------------+-----------+------------------+ 
| 1 |  NULL | NULL  | 01/06/13 7:16 pm |      |   | NULL  |  NULL | 01/06/13 8:57 pm | 
| 2 |  NULL | NULL  |     |      |   | NULL  |  NULL | 01/06/13 7:17 pm | 
| 3 |  NULL | NULL  | 01/06/13 8:43 pm |      |   | NULL  |  NULL | NULL    | 
| 4 |  NULL | NULL  | 2:12 am   |      |   | NULL  |  NULL | 12:47 pm   | 
| 5 |  NULL | NULL  | 8:33 pm   |      |   | NULL  |  NULL | NULL    | 
| 17 |  NULL | NULL  | 2:32 pm   |      |   | NULL  |  NULL | NULL    | 
| 18 |  NULL | 01/12/13 | 2:33 pm   |      |   | NULL  |  NULL | 5:07 pm   | 
| 19 |  NULL | 01/12/13 | 2:37 pm   |      |   | NULL  |  NULL | 5:07 pm   | 
| 20 |  NULL | 01/12/13 | 5:07 pm   |      |   | NULL  |  NULL | 5:07 pm   | 
| 21 |   1 | 01/12/13 | 5:31 pm   | Worked in Jefferson | Excavator | 01E  |  8182 | 5:37 pm   | 
| 22 |  NULL | NULL  |     | Worked in Jefferson | Excavator | 01E  |  8932 | NULL    | 
| 23 |  NULL | 01/12/13 | 7:10 pm   |      |   | NULL  |  NULL | NULL    | 
| 24 |   1 | 01/12/13 | 7:11 pm   |      |   | NULL  |  NULL | NULL    | 
+----+------------+----------+------------------+---------------------+-----------+------------+-----------+------------------+ 

回答

3

您可能要更改= '空',因爲它在尋找字符串 'NULL',而不是NULL

$stmt = $conn->prepare("SELECT COUNT(*) FROM timeRecords WHERE `timeOut` IS NULL AND `employeeID`= :employeeID AND `date`= :dateToday"); 

您也可以嘗試:

if($stmt->rowCount()){ 
    echo "There was a match!"; 
}else{ 
    echo "There was no Match"; 
}