2014-07-16 80 views
2

我想在python中使用sqlite3做一個sqlite數據庫。在這裏,我正在創建新的表格,其名稱爲table_names,每個表格只有一個字段列。 conn.execute('CREATE TABLE {} (quote TEXT PRIMARY KEY NOT NULL);'.format(table_names[i]))quote我正在從文件中讀取。然而,我無法執行插入語句,下面我已經發布了所有我嘗試過的和他們的錯誤。任何幫助將不勝感激。由於python sqlite錯誤

conn.execute('''INSERT INTO {} (quote) VALUES ('{}')'''.format(table_names[i], quote)) 
Error : sqlite3.OperationalError: near "s": syntax error 

conn.execute('''INSERT INTO {} (quote) VALUES ('?')'''.format(table_names[i]), (quote,)) 
Error : sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 1 supplied. 

conn.execute('''INSERT INTO ? (quote) VALUES ('?')''', (table_names[i], quote)) 
Error : sqlite3.OperationalError: near "?": syntax error 
+0

如果你想變'foo'在'bar'分配到的價值,你做'FOO = 「酒吧」'? –

+0

@ColonelThirtyTwo得到了錯誤。謝謝 – sujithvm

回答

2

參數標記?不能被引用,因爲在SQL,一切都在引號是一個字符串。

正確的形式是:

conn.execute('''INSERT INTO {} (quote) VALUES (?)'''.format(table_names[i]), (quote,)) 
+0

但他們試圖添加的值是一個字符串。 – Holloway

+1

參數的*值*是一個字符串,參數本身是一個抽象變量。 –

+0

@CL。謝謝 :) – sujithvm