Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用类SQL运算符插入元组_Python_Sql_Sqlite_Pycharm - Fatal编程技术网

Python 使用类SQL运算符插入元组

Python 使用类SQL运算符插入元组,python,sql,sqlite,pycharm,Python,Sql,Sqlite,Pycharm,我试图编写一个SQL查询,其中用户输入一个名称,通过插入元组,查询将使用LIKE运算符返回数据库中类似的名称 这就是我所尝试的: user_input = input('Enter name: ') c.execute('SELECT FirstName, LastName FROM Person WHERE FirstName LIKE('%' + ? + '%')', user_input) 但是,查询无法运行,我收到了这些错误 TypeError: not all arguments c

我试图编写一个SQL查询,其中用户输入一个名称,通过插入元组,查询将使用LIKE运算符返回数据库中类似的名称

这就是我所尝试的:

user_input = input('Enter name: ')
c.execute('SELECT FirstName, LastName FROM Person WHERE FirstName LIKE('%' + ? + '%')', user_input)
但是,查询无法运行,我收到了这些错误

TypeError: not all arguments converted during string formatting
TypeError: must be str, not tuple

感谢您的帮助

您可以使用双引号引用SQL查询,以便允许单引号引用
%
字符:

c.execute("SELECT FirstName, LastName FROM Person WHERE FirstName LIKE '%' || ? || '%'",
    (user_input,))
c.execute('SELECT FirstName, LastName FROM Person WHERE FirstName LIKE ?',
    (f'%{user_input}%',))
或者向SQL查询中的占位符传递一个字符串,其中
用户输入已包含在
%
字符中:

c.execute("SELECT FirstName, LastName FROM Person WHERE FirstName LIKE '%' || ? || '%'",
    (user_input,))
c.execute('SELECT FirstName, LastName FROM Person WHERE FirstName LIKE ?',
    (f'%{user_input}%',))