有可能避免" AS"计算mysql表的总行数时的参数? (PHP)

时间:2014-12-14 23:03:05

标签: php sql mysqli

现在我使用此代码计算表的总行数:

$sql = "SELECT COUNT(*) AS Total FROM MyTable";
$result = mysqli->query($sql);
$numberOfRows = mysqli_fetch_object($result);
$numberOfRows = $numberOfRows->Total;

我试图转储不同的结果,当我在查询中不使用“AS”参数并在互联网上搜索它时,我得到了不同的结果,但尽管有很多例子我发现它们都没有显示没有“AS”参数的直接检索结果的代码。

...

从收到的答案和评论中,我尝试了这两个代码块,它们给出了预期的结果:

$sql = "SELECT COUNT(*) FROM MyTable";
$result = mysqli->query($sql);

然后: 使用fetch数组:

$numberOfRows = $result->fetch_array($result);
$numberOfRows = $numberOfRows[0];

使用fetch assoc:

$numberOfRows = $result->fetch_assoc($result);
$numberOfRows = $numberOfRows["COUNT(0)"];

性能方面我发现fetch数组效果稍好(没有操作码尝试)。

1 个答案:

答案 0 :(得分:3)

如果您不使用AS分配别名,则输出中列的名称将为COUNT(*)。然后,您应该能够使用以下方法检索它:

$numberOfRows = $numberOfRows->{"COUNT(*)"}