Задать вопрос

Как узнать, выполнился ли запрос в PDO?

Осваиваю PDO...
Возник такой вопрос...как узнать, выполнился ли запрос?

Пример моей функции:
public function Query($query, $param){
	$stmt = $this -> db -> prepare($query);
	$stmt -> execute($param);
	$row = $stmt -> fetch();
	return $row;
}

Конструкция такого вида(как пример):
if($this -> QueryOne('UPDATE `users` SET `user_activation` = :num WHERE `user_id` = :id', array(':num' => 1, ':id' => 1))){
  echo 'true';
}else echo 'false';

Всегда выводит false в любом случае и при любом запросе...
Т.е. как сделать, чтобы функция возвращала РЕЗУЛЬТАТ(при SELECT) или TRUE(при UPDATE, INSERT и т.д.) - при удаче или получении данных из таблицы...и возвращала FALSE - при неудаче?
  • Вопрос задан
  • 4056 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
php.net/manual/ru/pdo.query.php
PDO::query() возвращает объект PDOStatement или FALSE, если запрос выполнить не удалось.
Ответ написан
Комментировать
akubintsev
@akubintsev
Опытный backend разработчик
Включите режим использования исключений в PDO
$db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Я спрашивал уже, и спрошу снова: ЗАЧЕМ?

Зачем ты хочешь проверять успешность выполнения запроса и что ты потом будешь с этим сакраментальным знанием делать?

Кстати,
(при UPDATE, INSERT и т.д.)

Как я уже писал, при UPDATE, INSERT и т.д. твоя функция всегда будет выдавать ошибку. Можно даже не проверять
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы