我在试着用英语写剧本 PHP (使用mariadb)显示表中的行数,我尝试使用以下脚本:
PHP
echo $conn->query('SELECT COUNT(*) FROM testtable')->fetchObject()->count(*);
但是当我执行它时,我得到以下错误:分析错误:语法错误,意外的“*”。我怎么才能避开这个?我该怎么解决
txu3uszq1#
代码
echo $conn->query('SELECT COUNT(*) AS rownum FROM testtable')->fetchObject()->rownum;
为我工作
l2osamch2#
你试过这样吗?使用fetchcolumn()
$result = $conn->query("SELECT COUNT(*) FROM testtable"); echo $result->fetchColumn();
参见示例:http://php.net/manual/en/pdostatement.fetchcolumn.php#72609
bzzcjhmw3#
此错误是由于 ->count(*) 但是,即使像德文指出的那样解决了这个问题,它无论如何也不会起作用,因为没有 count() 方法返回的内容 fetchObject() .请参阅此处的fetchobject和此处的fetchcolumn文档。你可以试试
->count(*)
count()
fetchObject()
echo $conn->query('SELECT COUNT(*) FROM testtable')->fetchObject();
获取整行,但由于行只有一列, ->fetchColumn(0) 这就是你所需要的。
->fetchColumn(0)
v440hwme4#
如果只需要获取一个值,请使用fetchcolumn。
echo $conn->query('SELECT COUNT(*) FROM testtable')->fetchColumn();
你的错误是因为 count(*) 调用名为 count 关于第一个参数为 * . 不带引号的星号将导致php中的语法错误。你需要使用 $obj->{'COUNT(*)'} 访问名为的属性 COUNT(*) ,但使用fetchcolumn要简单得多。
count(*)
count
*
$obj->{'COUNT(*)'}
COUNT(*)
4条答案
按热度按时间txu3uszq1#
代码
为我工作
l2osamch2#
你试过这样吗?使用fetchcolumn()
参见示例:http://php.net/manual/en/pdostatement.fetchcolumn.php#72609
bzzcjhmw3#
此错误是由于
->count(*)
但是,即使像德文指出的那样解决了这个问题,它无论如何也不会起作用,因为没有count()
方法返回的内容fetchObject()
.请参阅此处的fetchobject和此处的fetchcolumn文档。
你可以试试
获取整行,但由于行只有一列,
->fetchColumn(0)
这就是你所需要的。v440hwme4#
如果只需要获取一个值,请使用fetchcolumn。
你的错误是因为
count(*)
调用名为count
关于第一个参数为*
. 不带引号的星号将导致php中的语法错误。你需要使用$obj->{'COUNT(*)'}
访问名为的属性COUNT(*)
,但使用fetchcolumn要简单得多。