未预测的分析错误'*

cngwdvgl  于 2021-06-20  发布在  Mysql
关注(0)|答案(4)|浏览(312)

我在试着用英语写剧本 PHP (使用mariadb)显示表中的行数,我尝试使用以下脚本:

echo $conn->query('SELECT COUNT(*) FROM testtable')->fetchObject()->count(*);

但是当我执行它时,我得到以下错误:
分析错误:语法错误,意外的“*”。我怎么才能避开这个?我该怎么解决

txu3uszq

txu3uszq1#

代码

echo $conn->query('SELECT COUNT(*) AS rownum FROM testtable')->fetchObject()->rownum;

为我工作

l2osamch

l2osamch2#

你试过这样吗?使用fetchcolumn()

$result = $conn->query("SELECT COUNT(*) FROM testtable");
echo $result->fetchColumn();

参见示例:http://php.net/manual/en/pdostatement.fetchcolumn.php#72609

bzzcjhmw

bzzcjhmw3#

此错误是由于 ->count(*) 但是,即使像德文指出的那样解决了这个问题,它无论如何也不会起作用,因为没有 count() 方法返回的内容 fetchObject() .
请参阅此处的fetchobject和此处的fetchcolumn文档。
你可以试试

echo $conn->query('SELECT COUNT(*) FROM testtable')->fetchObject();

获取整行,但由于行只有一列, ->fetchColumn(0) 这就是你所需要的。

v440hwme

v440hwme4#

如果只需要获取一个值,请使用fetchcolumn。

echo $conn->query('SELECT COUNT(*) FROM testtable')->fetchColumn();

你的错误是因为 count(*) 调用名为 count 关于第一个参数为 * . 不带引号的星号将导致php中的语法错误。你需要使用 $obj->{'COUNT(*)'} 访问名为的属性 COUNT(*) ,但使用fetchcolumn要简单得多。

相关问题