Как сказать, когда запрос успешно выполнен в PHP PDO?
Как я могу проверить, успешно ли выполнил следующий запрос?
$STH = $this->_db->prepare("UPDATE UserCreds SET
VerificationString=:newVerificationString, ExpiryDate=:expiryDate
WHERE UserID = :userID;");
$STH->execute($params);
Я знаю, что могу использовать lastInsertId()
, когда добавляю новые строки, но как насчет UPDATE и SELECT?
Ответы
Ответ 1
execute
возвращает true
при успешном завершении и false
при сбое.
Из Документов:
Возвращает TRUE при успешном завершении или FALSE при сбое.
Итак, вы можете убедиться, что запрос успешно выполнен:
if ($STH->execute($params))
{
// success
}
else
{
// failure
}
Ответ 2
execute() возвращает true/false на основе успеха/отказа запроса:
$status = $STH->execute($params);
if ($status) {
echo 'It worked!';
} else {
echo 'It failed!';
}
Одна заметка: запрос выбора, который не возвращает строк, НЕ является ошибкой. Это совершенно правильный результат, который просто не имеет результатов.
Ответ 3
просто я могу подсчитать количество произведенных строк:
$stmt->execute();
$count = $stmt->rowCount();
if($count =='0'){
echo "Failed !";
}
else{
echo "Success !";
}
Ответ 4
Это лучший способ проверить успешность возврата результата запроса Doctrine или не удалось
результат и тот же способ, что и выше, предлагают проверить погоду
возвращает Успех на True и Сбой при ложном.
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";
}
}