我刚刚注意到 mysql_num_rows 应该返回为 SELECT 或 SHOW 命令返回的行数,专门为 SHOW TABLE 命令返回 0。
相反,它显示受影响的行数而不是行数。
谁能告诉我这是一个错误还是我在这里遗漏了什么?
我刚刚注意到 mysql_num_rows 应该返回为 SELECT 或 SHOW 命令返回的行数,专门为 SHOW TABLE 命令返回 0。
相反,它显示受影响的行数而不是行数。
谁能告诉我这是一个错误还是我在这里遗漏了什么?
SHOW TABLE
命令用于显示数据库中的表名。另一方面,mysql_num_rows
用于计算从您的查询中获得了多少结果。此查询取决于您的要求基础......
从结果集中检索行数。此命令仅对返回实际结果集的 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中的一个错误,通过更新修复了它。