I have a function for getting path in a tree structure data.
According to my table in DB, root should get no result when I query sub_id=\'root_id\'
It is probably something to do with this from PDO rowCount Docs:
"If the last SQL statement executed by the associated PDOStatement was a SELECT statement, some databases may return the number of rows returned by that statement. However, this behaviour is not guaranteed for all databases and should not be relied on for portable applications."
In other words rowCount only really works with DML, and I believe this is the case in MySQL.
You have to count the fetched results to get the guaranteed row count.