0
嘗試向數據庫中插入字符串時,如:
「神奇拍擋07;」
沒有錯誤,但在選擇後讀取爲零。
例:
Ruby - sqlite3,將非ascii字符串插入數據庫
string = "セブンゴースト; 神幻拍擋07;"
db = SQLite3::Database.new "randomfilename"
prep = db.prepare "INSERT INTO test_db VALUES (NULL, ?)"
prep.bind_param 1, string
prep.execute
prep2 = db.prepare "SELECT * FROM test_db"
ret = prep2.execute
p ret
這將顯示是這樣的:[[0,零]]
(假設表具有主INT鍵作爲第一值和第二一TEXT)
有可能我的數據庫沒有好的編碼,但如果是這樣的話,我該如何改變它而不會丟失所有東西?
你肯定字符串使用UTF-8編碼? [此答案提供任何建議](http://stackoverflow.com/questions/27356441/sqlite-in-ruby-prepared-statement-cutting-utf-8-input)? – tadman
你確定列的排列順序是你認爲的嗎?你真的應該在你的INSERT中指定這些列:'insert into test_db(column_name1,column_name2)values(null,?)'或者更好,把null全部留出(除非你試圖覆蓋非NULL的默認值) :'insert into test_db(column_name2)values(?)'。你還應該包含'test_db'表的模式。 –
是的,我可以使用puts來顯示字符串內容。 –