PHP PDO错误&;成功信息
我最近刚刚将SQLi转换为PDO。我无法100%确定如何准备PDO语句以包含PHP PDO错误&;成功信息,php,pdo,Php,Pdo,我最近刚刚将SQLi转换为PDO。我无法100%确定如何准备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,:c
错误
或成功
语句。我已将部分代码包括在下面:
// 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";
}
//如果成功地将数据插入数据库,则显示消息“Successful”。
如果($结果){
呼应“成功”;
回声“
”;
}
否则{
回声“错误”;
}
对于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
}
通过检查
执行的返回结果
:
$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';
}
感谢您提供了上述有效的示例,我将使用您的示例如果您的问题得到解决,请不要忘记标记已回答的问题。不要害怕。我对PDO很陌生,所以我会有很多东西要学,我会阅读上面的url,我一直认为PDO会difficult@YourCommonSense我已经尝试了上述方法,它对我有效,我目前正在使用
PHPJobScheduler
执行计划任务,每4小时运行一次文件,我第一次使用PDO时遇到的问题是没有错误或成功声明。我尝试了上述方法,它对我有效,除非有更好的方法,我对PDO非常陌生,因此我愿意接受建议两个问题。1.如果发生错误,您具体想做什么?2.为什么您认为会有错误?我有一个计划任务,它运行并记录错误
或成功
在插入
或更新
上,我自定义这两条消息,以便检查哪里出错,我遇到的主要问题是,每次插入
或更新
都可能需要1分钟,因为它会远程提取JSON
的数据。什么肯定不能满足您的要求?我需要错误声明是有原因的,JSON API经常会失败,因为它有一个限制,我90%的时间依赖于它工作。如果我没有错误声明,那么我将不确定它是否工作,我不使用上面的数据输入表单,它是一个自动运行的文件,将自动插入数据,而无需使用表单