我刚刚注意到,mysql_num_rows应该返回为 SELECT 或 SHOW 命令返回的行数,特别是 SHOW TABLE 命令返回 0。
相反,它显示受影响的行计数而不是行数。
谁能告诉我这是一个错误,或者我在这里遗漏了什么?
SHOW TABLE
命令用于显示数据库中的表名。另一方面,mysql_num_rows
用于计算从查询中获得的结果数。此查询取决于您的要求基础...
如 PHP 文档页面所述:
从结果集中检索行数。此命令仅是 适用于返回实际结果的语句(如 SELECT 或 SHOW) 设置。
我的猜测是,SHOW TABLES
不是会生成mysql_num_rows
枚举的结果集类型的技术查询。
这些"帮助程序"函数(如SHOW
、EXPLAIN
、DESCRIBE
等)不会让你像在常规表中那样发布它们的结果。
但是,如果您正在寻找如何做到这一点,那么SHOW TABLES
您可以做到这一点。
SELECT `table_name` FROM `information_schema`.`tables`
WHERE `table_schema`=DATABASE()
-- DATABASE() selects current database name
-- you can use the name of any database as a string instead
所以基本上你可以使用information_schema
数据库来获取这些信息。
这是 mysql 中的一个错误,通过更新修复了它。