Python 编程错误:提供的绑定数量不正确。当前语句使用1,提供了40个
我有一个用户输入,我想输入一个用户ID并检索与该用户关联的songID。我在这方面遇到了问题,因为光标周围有错误 -我试图从中检索的数据库Python 编程错误:提供的绑定数量不正确。当前语句使用1,提供了40个,python,sql,input,sqlite,jupyter-notebook,Python,Sql,Input,Sqlite,Jupyter Notebook,我有一个用户输入,我想输入一个用户ID并检索与该用户关联的songID。我在这方面遇到了问题,因为光标周围有错误 -我试图从中检索的数据库 import pyodbc import MySQLdb import sqlite3 MusicData = sqlite3.connect("D:\lastfm-dataset-360K\msd.sqlite3") randomVariable = raw_input('Enter something: ') cursor = MusicD
import pyodbc
import MySQLdb
import sqlite3
MusicData = sqlite3.connect("D:\lastfm-dataset-360K\msd.sqlite3")
randomVariable = raw_input('Enter something: ')
cursor = MusicData.cursor()
MusicData = "SELECT songID FROM train WHERE userID=?"
result = cursor.execute(MusicData,randomVariable)
print result
当我输入用户ID时,我希望获得与该用户关联的SongID,但是我得到:
---------------------------------------------------------------------------
ProgrammingError Traceback (most recent call last)
<ipython-input-16-edd40392d38f> in <module>()
25 cursor = MusicData.cursor()
26 MusicData = "SELECT songID FROM train WHERE userID=?"
---> 27 result = cursor.execute(MusicData,randomVariable)
28 print result
29
ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 40 supplied.
这里应该已经回答了: 不过,简短的一点是,execute调用中的第二个参数应该是一个元组,而不仅仅是值,因此请按如下方式包装randomVariable: cursor.executeMusicData,随机变量 希望这有帮助
它之所以认为您提供了40个参数,是因为它在迭代输入字符串,认为每个字符都是您要填写的参数。谢谢您的帮助和解释!唯一的问题是现在我得到了错误:AttributeError:'str'对象没有属性'cursor'。我正在使用jupyter笔记本电脑,在我第一次新运行程序时它不会给出错误,我可以查询数据库,但如果我再次输入它,它会抛出错误。@T.Gilmour使用相同的变量进行数据库连接和字符串是个坏主意。。。