PHP PDO错误和成功消息
我刚刚将我的SQLi转换为PDO。我不是100%确定如何编制PDO声明以包含ERROR
或SUCCESS
声明。我已经包含下面我的代码部分:PHP PDO错误和成功消息
// query
$sql = "INSERT INTO data (avatar,citid,birthday,citname,level,experience,rank,rankimage,elite_citizen,points,strength,status,citizenship,mu,date) VALUES (:avatar,:citid,:birthday,:citname,:level,:experience,:rank,:rankimage,:elite_citizen,:points,:strength,:status,:citizenship,:mu,:date)";
$q = $conn->prepare($sql);
$q->execute(array(':avatar'=>$avatar,':citid'=>$citid,':birthday'=>$birthday,':citname'=>$citname,':level'=>$level,':experience'=>$experience,':rank'=>$rank,':rankimage'=>$rankimage,':elite_citizen'=>$elite_citizen,':points'=>$points,':strength'=>$strength,':status'=>$status,':citizenship'=>$citizenship,':mu'=>$mu,':date'=>$date));
在MySQL中,我发现它更容易使用下面的语句:
// if successfully insert data into database, displays message "Successful".
if($result){
echo "Successful";
echo "<BR>";
}
else {
echo "ERROR";
}
我将如何完成对PDO一样吗?
我该如何完成PDO的相同操作?
PDO使用例外(默认情况下)。这意味着您可以使用try-catch
块来捕获发生的异常并打印出错消息。
如果一切顺利,错误消息块将被跳过,如果发生错误,成功消息将被跳过并且catch块将被运行。
try {
// pdo code
// success message
} catch(PDOException $e) {
// error message
}
在您的具体情况:
try {
$sql = "...";
$q = $conn->prepare($sql);
$q->execute(array(...));
echo 'Good'; // success message
} catch(PDOException $e) {
echo 'Bad'; // error message
}
感谢上面的例子它的工作,我会用你的例子 – user2517479
不要忘了标记问题已解决的问题。不要害怕[阅读关于PDO的文档](http://www.php.net/manual/en/pdo.prepared-statements.php)。 – SamSquanch
我很新PDO,所以我会有很多哟学习,我会阅读上述网址,我一直认为PDO将是困难的 – user2517479
通过检查execute
返回结果:
$sql = "INSERT INTO `data` (`avatar`) VALUES (:avatar)";
$stmt = $conn->prepare($sql);
$res = $stmt->execute(array(':avatar' => $avatar));
if ($res === true) {
echo 'Success';
}
else {
echo 'Error';
}
两个问题。 1.如果出现错误,你想要做什么? 2.你为什么认为会出现错误? –
我有一个计划任务,运行并在'INSERT'或'UPDATE'上记录'error'或'success',我自定义任一消息以便我可以检查出错的地方,我遇到的主要问题是每个' INSERT'或'UPDATE'可能需要1分钟,因为它远程为'JSON'提取数据 – user2517479
想象一下上面的语句中有一个错误。什么肯定不会让你满意? –