PHP 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

我最近刚刚将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,: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%的时间依赖于它工作。如果我没有错误声明,那么我将不确定它是否工作,我不使用上面的数据输入表单,它是一个自动运行的文件,将自动插入数据,而无需使用表单