我试图让这个声明起作用,但我猜它必须有一个错误,因为它根本不会产生任何结果或错误。有经验和新鲜眼睛的人可以看看它是否有问题。代码如下:
$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));
答案 0 :(得分:1)
在原始代码中发现错误我在发现)
WHERE
之前发现错误,这要归功于使用下面try/catch block
更新和工作代码的建议:
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();
}
答案 1 :(得分:1)
很高兴您找到了try
的解决方案。
我可能还会补充说,在为网站编码时添加标准错误报告非常有用。在处理脚本时,将其添加到顶部:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
?>
在您将网页设为现场之前将其删除。这使我免于数百次错误。
您甚至可以更进一步,为您的IP地址启用错误报告(假设您的IP是静态的)。保留IP允许/限制通常是一种不好的做法,因此在完成编辑后应将其删除。
//Change to match your IP address
if($_SERVER['REMOTE_ADDR']=="123.456.78.9"){
error_reporting(E_ALL);
ini_set('display_errors', 'On');
}