The "rows" returned are strings, (hence the delimiter parameters for separating fields). They're not parsed into PHP arrays, so this isn't a substitute for $connection->query('SELECT * FROM table_name')->fetchAll().
Only the first character of $delimiter is used. Characters that may be used are those <32 except "\r", "\n" and NUL (chr(0)); anything from !"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKMOPQRSTVWXYZ[]^_`{|}~, and DEL (chr(127)) (yes, upper-case letters are allowed, but lower-case ones are not).
Also, the $fields argument is a comma-separated list of the desired columns.