Tuple, List กับ Sqlite ใน python


ผมลองใช้ python สร้างไฟล์ SQlite แต่ปรากฎว่า มีอยู่จุดนึงผมเจอ error นี้ตลอด
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 4 supplied.
มันคืออะไรฟระ!!! (= =’)

import sqlite3
cx = sqlite3.connect(dbname, isolation_level=None)
data = 'ABDC'
insertString = 'Insert into table (field) values(?)'

หัวเหมือนกันหมดแบบนี้ครับ

ส่วนที่เป็นปัญหาคือส่วนนี้

cx.cursor().execute(insertString, (data))
cx.cursor().execute(insertString, data)

cx.cursor().execute(insertString, str(data))

ไม่ผ่านซักอันครับ Error เดียวกันด้วย

วิธีแก้ก็คือ…

cx.cursor().execute(insertString, [data])

ซะงั้นอ่ะ – -‘ ถ้าตัวเดียวไม่รับ tuple รับแต่ list

แต่ว่าถ้า tuple มากกว่า 2 ตัวดันได้ซะงั้น

import sqlite3
cx = sqlite3.connect(dbname, isolation_level=None)
data = 'ABDC'
data2 = 'WXYZ'
insertString = 'Insert into table (field,field2) values(?,?)'
cx.cursor().execute(insertString, (data,data2))

เสียใจง่ะ แก้ตั้งนาน (- -‘)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s