如果0行影响了PDO,我怎么能返回false?
我有这个方法来执行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 :(得分:6)
试试这个
return $stmt->rowCount() > 0;
答案 1 :(得分:6)
请考虑
return $stmt->rowCount() > 0;
答案 2 :(得分:2)
或者
return (bool) $stmt->rowCount();