使用到MySQL的PDO连接。
我无法检索“插入到”查询的受影响行数

$sql = 'insert into ... ';
$q = $dbh->prepare($sql);
$q = $q->execute();
echo ( $q->rowCount() );
echo ( $q->affectedRows() );

致命错误:调用非对象上的成员函数rowCount()。
致命错误:调用非对象上的成员函数affectedRows()。
记录插入成功,但我无法检查,因为它不会返回任何内容。
怎么了?

最佳答案

调用$q时不应覆盖PDOStatement::execute()变量;它返回布尔值。只需在调用execute方法时删除赋值:

$q->execute();

PDOStatement中也没有名为affectedRows的方法。PDOStatement::rowCount()应该是你所需要的:
PDOStatement::rowCount()返回受相应PDOStatement对象执行的最后一条DELETE、INSERT或UPDATE语句影响的行数。

10-07 14:02