我有一個函數可以從表中的字段中找到oid
。根據文檔,oid
字段會自動創建並自動遞增。聽起來很棒。Ruby中的SQLite查詢失敗,沒有錯誤
def teddy_bear_id_by_url(url)
query = "select oid from teddy_bears where url = \"#{url}\""
res = $db.execute(query)
return res
end
不幸的是此代碼返回一個[]
(空數組),運行在源碼殼查詢時給出「好」的值(例如4
)。
def teddy_bear_id_by_url(url)
return $db.execute("select oid from teddy_bears where url = '?'", url)
end
以上也不起作用。
我確實檢查了url
是否包含我認爲它的含義。
可能發生了什麼?
你確定你的'url'包含你認爲它所做的嗎?沒有前導或尾隨空白?如果你離開where子句,會發生什麼?另外,你真的應該在SQL中使用單引號來處理字符串文字(SQLite允許使用雙引號,但這隻會導致不良的習慣),你應該使用佔位符而不是假裝你是1999年的PHP程序員。 – 2012-07-16 04:29:12
'網址確實包含我認爲它所做的事情。我登錄了它,並且它返回正是它應該的。沒有前導或尾隨空白。我用單引號替換它,但仍然沒有骰子。感謝您的佔位符提示,但我確實嘗試了與佔位符相同的結果。 – tekknolagi 2012-07-16 05:07:39
佔位符版本將是'$ db.execute(「teddy_bears where url =?,url)'(即佔位符周圍沒有引號)的選擇oid。 – 2012-07-16 05:57:47