Php PDO语句失败

Php PDO语句失败,php,mysql,pdo,Php,Mysql,Pdo,我试图让这句话起作用,但我猜肯定有错误,因为它不会产生任何结果或错误。能不能请一个经验丰富、眼光敏锐的人检查一下,看看我是不是出了什么问题。代码如下: $conn = new PDO('mysql:host=localhost;dbname=timecard', 'username', 'password'); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->

我试图让这句话起作用,但我猜肯定有错误,因为它不会产生任何结果或错误。能不能请一个经验丰富、眼光敏锐的人检查一下,看看我是不是出了什么问题。代码如下:

$conn = new PDO('mysql:host=localhost;dbname=timecard', 'username', 'password');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare('UPDATE `timeRecords` SET `jobDescription`= :jobDescription, `equipType`= :equipType, `unitNumber`= :unitNumber, `unitHours`= :unitHours) 
                            WHERE `employeeID`= :employeeID AND `date`= :dateToday');

    $stmt->execute(array(':employeeID' => $_SESSION['employeeID'], ':dateToday' => $dateToday, ':jobDescription' => $jobDescription,
                         ':equipType' => $equipType, ':unitNumber' => $unitNumber, ':unitHours' => $unitHours));

在原始代码中发现错误我在
之前留下了一个
,其中
由于建议使用下面的
try/catch块
更新和工作代码,所以找到了该错误:

try{
$conn = new PDO('mysql:host=localhost;dbname=timecard', 'username', 'password');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('UPDATE `timeRecords` SET `jobDescription`= :jobDescription, `equipType`= :equipType, `unitNumber`= :unitNumber, `unitHours`= :unitHours 
                        WHERE `employeeID`= :employeeID AND `date`= :dateToday');

$stmt->execute(array(':employeeID' => $_SESSION['employeeID'], ':dateToday' => $dateToday, ':jobDescription' => $jobDescription,
                     ':equipType' => $equipType, ':unitNumber' => $unitNumber, ':unitHours' => $unitHours));
} catch(PDOException $e){
    echo'ERROR: ' . $e->getMessage();
}

很高兴您通过
找到了解决方案,请尝试

我还要补充一点,在编写站点代码时添加标准错误报告非常有用。在编写脚本时,将以下内容添加到顶部:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
?>

您如何知道它是否不会产生任何错误?我看不到有人试图抓住他们。你有什么回应吗?我猜没有任何条目的
employeeID
date
where
子句匹配。@Daedalus是对的。使用try/catch块进行调试。否则,
PDO::ATTR_ERRMODE
PDO::ERRMODE_EXCEPTION
属性将无效。在WHERE语句之前找到了我留下的错误(
//Change to match your IP address
if($_SERVER['REMOTE_ADDR']=="123.456.78.9"){
error_reporting(E_ALL);
ini_set('display_errors', 'On');
}