Как я могу вернуть false, если 0 строк затронуты PDO?
У меня есть этот метод для выполнения SQL-запроса,
public function executeSQL($query, $params = array()) { try { $stmt = $this->connection->prepare($query); $params = is_array($params) ? $params : array($params); $stmt->execute($params); return true; } catch (PDOException $e) { // call the get_error function $this->get_error($e); } }
Поэтому я могу запустить такой запрос, как показано ниже, для обновления строки в моей таблице,
$update = " UPDATE content_has_language SET text = ? WHERE content_id ? AND language_id IN ( SELECT language_id FROM language AS l WHERE l.code = ? ) "; $result = $this->connection->executeSQL($update,array( 'xxx', '1', 'en' ));
И он всегда возвращает true, соответствует ли строка и обновляется ли она. Но мне нужно, чтобы он возвращал false – если 0 rows affected. (Query took 0.0010 sec)
0 rows affected. (Query took 0.0010 sec)
Является ли это возможным?
Попробуй это
return $stmt->rowCount() > 0;
Пожалуйста примите к сведению
return $stmt->rowCount() > 0;
Или
return (bool) $stmt->rowCount();