2015-04-07 64 views
1
require 'mysql2' 

SCHEDULER.every '2h', :first_in => 0 do |job| 

    # MySQL connection 
    db = Mysql2::Client.new(:host => "host", :username => "username", :password => "password", :port => port, :database => "database") 

    sql = "select count(*) from tickets where department_id = 6;" 
    tickets_sql = db.query(sql) 
    puts tickets_sql 

    #Send Events 
    send_event('tickets_sql', {current: tickets_sql}) 


end 

我正在使用puts命令,所以我可以看到我的日誌文件中的輸出。此命令的輸出是一個錯誤消息,它是:#<Mysql2::Result:0x000000025546a8>SQL錯誤與紅寶石

這個錯誤是什麼意思?

我採取了與代碼中相同的確切查詢並將其在數據庫上運行,並按預期輸出數字。

回答

1

這不是一個錯誤消息,它是一個對象(Mysql2::Result)。你可以給count(*)和別名(把as smth後)和訪問爲tickets_sql.first['smth'](你可以使用first因爲只有一個行,否則,你會得到一個集合,所以你應該通過它與.each例如迭代,,輸出檢索行與puts)。

+0

非常感謝你,這解決了我的問題 – Johnathon22

+0

@ Johnathon22:不客氣 – potashin

+0

關於這個@notulysses的一個更多的問題可以說,它返回的數字是小數,有沒有一種特殊的方式來處理這個問題。 count(*)似乎不適用於小數。 – Johnathon22