Как сказать, когда запрос успешно выполнен в PHP PDO?

Как я могу проверить, успешно ли выполняется следующий запрос?

$STH = $this->_db->prepare("UPDATE UserCreds SET VerificationString=:newVerificationString, ExpiryDate=:expiryDate WHERE UserID = :userID;"); $STH->execute($params); 

Я знаю, что я могу использовать lastInsertId() когда добавляю новые строки, но как насчет UPDATE и SELECT?

Выполнение возвращает true при успешном выполнении и false при ошибке.

Из документов:

Возвращает TRUE при успешном завершении или FALSE при сбое.


Таким образом, вы можете убедиться, что запрос успешно выполнен:

 if ($STH->execute($params)) { // success } else { // failure } 

execute () возвращает true / false на основе успеха / отказа запроса:

 $status = $STH->execute($params); if ($status) { echo 'It worked!'; } else { echo 'It failed!'; } 

Одна заметка: запрос выбора, который не возвращает строк, НЕ является ошибкой. Это абсолютно правильный результат, который просто не имеет результатов.

просто я могу подсчитать количество строк:

 $stmt->execute(); $count = $stmt->rowCount(); if($count =='0'){ echo "Failed !"; } else{ echo "Success !"; } 

Это лучший способ проверить успешность результата результата запроса Doctrine или неудачный результат, и так же, как указано выше, для проверки запроса погоды возвращает Success on True и Failed on false .

  public static function removeStudent($teacher_id){ $q = Doctrine_Query::create() ->delete('Student s') ->where('s.teacher_id = ?'); $result = $q->execute(array($teacher_id)); if($result) { echo "success"; }else{ echo "failed"; } }