我只是想知道是否更好地使用PDO类rowCount
方法而不是SQL COUNT(col_name)
来计算行数。
每个人都有一些推荐的情况吗?
答案 0 :(得分:1)
一个很大的区别?关于the rowCount
manual page的免责声明:
如果关联的PDOStatement执行的最后一条SQL语句是SELECT语句,某些数据库可能会返回该语句返回的行数。但是,无法保证所有数据库的此行为,并且不应依赖于便携式应用程序。
强调补充。
如果您需要匹配的数据库中的记录数,请使用COUNT()
。如果您需要数据库驱动程序认为它返回给您的行数/支持该概念的数据库驱动程序中受影响的行数,请使用PDO的rowCount
,但不能保证数据将是那里,取决于底层的数据库驱动程序。
答案 1 :(得分:0)
我建议使用rowCount,因为它是在驱动程序中实现的。 COUNT()要求mysql执行额外的工作,这可能是您实例中的问题,也可能不是。