我試圖插入遠程mysql數據庫。我能夠正確連接,並可以查詢'選擇'沒有問題。但是,我無法執行插入到我可以從中選擇的同一個表中。我懷疑它與我的綁定有關,但這與我用來獲取sqlite3的工作幾乎完全相同,我認爲它使用相同的Arel來插入。使用Mysql2的Ruby SQL插入寶石
@result = @db.query("insert into lead_to_processes (case_number, style_of_case) values (?,?)", [
self.case_number.to_blob.force_encoding("UTF-8"),
self.style_of_case.to_blob.force_encoding("UTF-8")
]
)
最終目標是能夠從模型內部查詢遠程數據庫並向其中插入數據。我嘗試過使用Octopus,但這並不奏效,因爲這些表格將與數據庫不同。
我在數據庫上擁有此用戶的完全權限。
所以從如下指導意見我改變了語法和我得到一個不同的錯誤
Mysql2 ::錯誤:你在你的SQL語法錯誤;
但是我做的查詢現在這個樣子
@db = Mysql2::Client.new(connectionstring)
@case_number = @db.escape(self.case_number)
@style_of_case = @db.escape(self.style_of_case)
@db.query("insert into lead_to_processes (case_number, style_of_case) VALUES
(#{@case_number}, #{@style_of_case})
任何意見或指導?我也試着用''封裝我插入的變量
你得到任何錯誤?你可以發佈他們嗎?你有寫數據庫的權限嗎?或只讀? – Mischa 2013-04-09 13:24:37
我不相信mysql2 gem提供了對查詢的綁定,你必須自己創建有效的SQL來傳遞給查詢。 https://github.com/brianmario/mysql2 – mguymon 2013-04-09 13:35:40
你能粘貼拋出的異常嗎? – Egalitarian 2013-04-09 13:39:19