Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
我使用cursor()方法在python中执行查询,但它给出了一个错误_Python_Mysql_Tkinter - Fatal编程技术网

我使用cursor()方法在python中执行查询,但它给出了一个错误

我使用cursor()方法在python中执行查询,但它给出了一个错误,python,mysql,tkinter,Python,Mysql,Tkinter,我想从数据库中的特定行获取数据,我正在使用cursor()方法执行python中的查询,但它给出了一个错误。 这是我的密码: sr = sr_no_var.get() conn = mysql.connector.connect(user='root', host='localhost', database='college', password='$@ffron@09') cur = conn.cursor() cur.execu

我想从数据库中的特定行获取数据,我正在使用cursor()方法执行python中的查询,但它给出了一个错误。 这是我的密码:

sr = sr_no_var.get()
conn = mysql.connector.connect(user='root', host='localhost', 
                               database='college', password='$@ffron@09')
cur = conn.cursor()
cur.execute("select QRcode from student where Serial_number=%s",(sr))
starting_index = cur.fetchall()
print(starting_index[0][0])
此代码给出以下错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\priyasingh\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1884, in __call__
    return self.func(*args)
  File "F:\New Volume\PycharmProjects\trial\student2.py", line 26, in display
    cur.execute("select QRcode from student where Serial_number=%s",(sr))
  File "F:\New Volume\PycharmProjects\trial\venv\lib\site-packages\mysql\connector\cursor.py", line 569, in execute
    self._handle_result(self._connection.cmd_query(stmt))
  File "F:\New Volume\PycharmProjects\trial\venv\lib\site-packages\mysql\connector\connection.py", line 651, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
  File "F:\New Volume\PycharmProjects\trial\venv\lib\site-packages\mysql\connector\connection.py", line 538, in _handle_result
    raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s' at line 1
我可以尝试什么来删除此错误

cur.execute("select QRcode from student where Serial_number=%s" % sr)
当使用%作为字符串中参数的占位符时,不需要在字符串后面加(,),而应该使用%,然后写入所需的值


当你在字符串中使用一些%来填充值时,你必须把这些值​​在后面的括号中。需要注意的是,一个对象不需要它。

什么是
sr
对象的类型?您可以尝试显式转换为
str
cur.execute(“从序列号=%s的学生中选择QRcode”,str(sr))
@KrishnaChaurasia请记住,它应该是
(sr,)
@KrishnaChaurasia Type of sr object是一个整数
%
是python的
mysql连接器中创建参数的占位符,而不是字符串格式的占位符。是的,你说得对。对Python中的所有字符串都有效,工作方式类似于
.format()
。无论如何,这将导致sql注入的路径。