对此有很多疑问,我做了很多研究.但是,我仍然想知道我是否正确这样做.
这是我的陈述(我简化了):
try {
$stmt = $pdc_db->prepare("SELECT * FROM table WHERE color = :color");
$stmt->bindValue(':color', $selected_color);
$stmt->execute();
$color_query = $stmt->fetchAll();
} catch(PDOException $e) { catchMySQLerror($e->getMessage()); }
现在,我使用以下内容来查看是否返回了任何结果:
if (count($color_query) > 0) {
这样可行,但是…… SELECT语句只返回一个结果.所以现在要访问结果中的东西,我使用的是$color_query [0] [colorname].我知道这是因为我正在使用fetchAll(),但我真的想要使用fetch()
但是,如果我只使用fetch(),我将失去执行count()的能力,这对我来说非常简单.我知道我可以做一个单独的查询并检查SELECT COUNT(*)的结果,但这似乎更多的工作(为每个设置两个单独的查询)
必须有一种方法,使用PHP中的PDO与mySQL,检查fetch()是否返回了结果?
解决方法:
执行()之后的$stmt->rowCount(),但不适用于所有数据库…尝试使用MySQL,看看你得到了什么.
标签:php,mysql,pdo
来源: https://codeday.me/bug/20190626/1292356.html