Вот мой пример кода для использования DBI:
dbh = DBI.connect("DBI:Mysql:host=#{server};database=mysql", user, pass)
rows = dbh.select_all("SHOW TABLES")
Здесь строки печатаются, как показано ниже:
[["user"], ["user"], ["user"], ["user"], ["user"], ["user"], ["user"], ["user"],
["user"], ["user"], ["user"], ["user"], ["user"], ["user"], ["user"], ["user"],
["user"]]
Это печать последней таблицы в базе данных MySQL, ноправильное общее количество записей.
Если я сделаю это с помощью последовательности execute-fetch / each-finish, что-то вроде следующего:
sth = dbh.execute("SHOW TABLES")
sth.each do |row|
rows << row[0]
end
sth.finish
Но это дает мне правильные результаты, такие как:
["columns_priv", "db", "func", "help_category", "help_keyword", "help_relation",
"help_topic", "host", "proc", "procs_priv", "tables_priv", "time_zone", "time_z
one_leap_second", "time_zone_name", "time_zone_transition", "time_zone_transitio
n_type", "user"]
Помогите мне с проблемой?