Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回的PHP PDO mysql计数行_Php_Mysql_Pdo - Fatal编程技术网

返回的PHP PDO mysql计数行

返回的PHP PDO mysql计数行,php,mysql,pdo,Php,Mysql,Pdo,在这方面有很多问题,我做了很多研究。然而,我仍然怀疑我是否做得对 以下是我的声明(我简化了它): 现在,我使用以下命令查看是否返回了任何结果: if (count($color_query) > 0) { 然而,这是可行的。。。SELECT语句将只返回一个结果。现在,为了访问结果中的内容,我使用$color\u query[0][colorname]。我知道这是因为我正在使用fetchAll(),但我确实想使用fetch() 但是如果我只使用fetch(),我就失去了计数()的能力,这对

在这方面有很多问题,我做了很多研究。然而,我仍然怀疑我是否做得对

以下是我的声明(我简化了它):

现在,我使用以下命令查看是否返回了任何结果:

if (count($color_query) > 0) {
然而,这是可行的。。。SELECT语句将只返回一个结果。现在,为了访问结果中的内容,我使用$color\u query[0][colorname]。我知道这是因为我正在使用fetchAll(),但我确实想使用fetch()

但是如果我只使用fetch(),我就失去了计数()的能力,这对我来说非常简单。我知道我可以进行单独的查询并检查SELECT COUNT(*)的结果,但这似乎需要更多的工作(为每个查询设置两个单独的查询)


必须有一种方法,在PHP和mySQL中使用PDO来检查fetch()是否返回了结果?

在execute()之后,但不能用于所有数据库。。。用MySQL试试,看看你得到了什么。

你可以用
fecth
来做,如果没有结果返回,
fecth
将返回false

if ($row = $stmt->fetch()) {
     //get the first row of the result.
     //....
}

没有理由使用fetch而不是fetchall有时在开始循环之前你必须知道是否有结果。@Col.Shrapnel他只需要结果的第一行,不需要循环。好吧,我重新阅读了问题,可能是这样。然而,这还不清楚。哇,这确实奏效了。在我所有的搜索中,大多数地方都说rowCount()不能与mySQL一起工作,所以我从不费心尝试。rowCount()是否工作取决于底层数据库驱动程序是使用真正的游标还是只返回所有缓冲的结果。MySQL在很大程度上就是后者。谢谢你提供的信息。我想真正的教训是不要假设rowCount()不起作用。在我的情况下,使用mysql的PHP PDO确实有效。希望这能为其他人节省一些时间。
if ($row = $stmt->fetch()) {
     //get the first row of the result.
     //....
}