Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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 mysqld查询_Python_Mysql_Sql_Mysql Python - Fatal编程技术网

将变量(表名、数据)传递到python mysqld查询

将变量(表名、数据)传递到python mysqld查询,python,mysql,sql,mysql-python,Python,Mysql,Sql,Mysql Python,我试图将表的名称和要插入到表中的信息作为参数传递。我提出的问题如下: sql = """INSERT INTO `%s` (title,link,description) VALUES(%%s,%%s,%%s)""" % (feed,title_xml,link_xml,description_xml) cursor.execute(sql) 但是,我得到以下错误: Traceback (most recent call last): File "slicer_1.py", line 41

我试图将表的名称和要插入到表中的信息作为参数传递。我提出的问题如下:

sql = """INSERT INTO `%s` (title,link,description) VALUES(%%s,%%s,%%s)""" % (feed,title_xml,link_xml,description_xml)
cursor.execute(sql)
但是,我得到以下错误:

Traceback (most recent call last):
  File "slicer_1.py", line 41, in <module>
    sql = """INSERT INTO `%s` (title,link,description) VALUES(%%s,%%s,%%s)""" %(feed,title_xml,link_xml,description_xml)
TypeError: not all arguments converted during string formatting
回溯(最近一次呼叫最后一次):
文件“slicer_1.py”,第41行,在
sql=“”插入“%s”(标题、链接、描述)值(%%s、%%s、%%s)”“”%(提要、标题、链接、描述)
TypeError:在字符串格式化过程中并非所有参数都已转换

这里可能有什么问题?

您在最后三个
%s
上有两个
%%
。这意味着在字符串替换中只替换第一个
%s
,这意味着您只能传递一个要替换的值。也许您想将另外三个传递给
execute
调用,由SQL库的安全替换来处理?或者,您需要使所有四个都只有一个
%
,这样它们在第一步都会被替换。(我不确定像MySQLdb这样的东西是否允许您参数化
数据。)

编辑:如果您接受第二个建议,您可能希望这样做:

"""INSERT INTO `%s` (title,link,description) VALUES("%s","%s","%s")""" % (feed,title_xml,link_xml,description_xml)

在最后三个
%s
上有两个
%%
。这意味着在字符串替换中只替换第一个
%s
,这意味着您只能传递一个要替换的值。也许您想将另外三个传递给
execute
调用,由SQL库的安全替换来处理?或者,您需要使所有四个都只有一个
%
,这样它们在第一步都会被替换。(我不确定像MySQLdb这样的东西是否允许您参数化
数据。)

编辑:如果您接受第二个建议,您可能希望这样做:

"""INSERT INTO `%s` (title,link,description) VALUES("%s","%s","%s")""" % (feed,title_xml,link_xml,description_xml)

删除%%并将其改为%%,我现在得到的错误是---->回溯(最近一次调用最后一次):\u mysql\u exceptions.ProgrammingError:(1064,“您的SQL语法有错误;请查看与您的mysql服务器版本对应的手册,以了解在第1行“Phailin杀死23人,大规模疏散拯救数千人”附近使用的正确语法)@用户2876777:可能您需要引用
值中的值
。代码更改为“”,插入
%s
(标题、链接、描述)值(
%s
%s
%s
)“%”(提要、标题xml、链接xml、描述xml)输出为-->\mysql\u异常。操作错误:(1054,“未知专栏‘旋风Phailin:印度气象部门在‘现场列表’中战胜了预测’”)谢谢你,但是,我只能传递两个变量,标题和链接。当我编辑它以添加第三个变量时,我得到以下错误-->文件“/usr/lib/python2.7/dist-packages/MySQLdb/connections.py“,第36行,在defaulterrorhandler raise errorclass中,errorvalue\u mysql\u exceptions.ProgrammingError:(1064,'您的SQL语法中有一个错误;检查与您的mysql服务器版本相对应的手册,以获得正确的语法,以便在第1行附近使用\'0”height=“1”src=“\”删除%%并将其设置为%,我现在得到的错误是-->回溯(最后一次调用):\u mysql\u exceptions.ProgrammingError:(1064,“您的SQL语法有错误;请查看与您的mysql服务器版本相对应的手册,以了解在第1行“Phailin杀死23人,大规模疏散拯救数千人”附近使用的正确语法)@用户2876777:可能您需要引用
值中的值
。代码更改为“”,插入
%s
(标题、链接、描述)值(
%s
%s
%s
)“%”(提要、标题xml、链接xml、描述xml)输出为-->\mysql\u异常。操作错误:(1054,“未知专栏‘旋风Phailin:印度气象部门在‘现场列表’中战胜了预测’”)谢谢你,但是,我只能传递两个变量,标题和链接。当我编辑它以添加第三个变量时,我得到以下错误-->文件“/usr/lib/python2.7/dist-packages/MySQLdb/connections.py“,第36行,在defaulterrorhandler raise ERRORCASE中,errorvalue\u mysql\u exceptions.ProgrammingError:(1064,'您的SQL语法中有一个错误;检查与您的mysql服务器版本对应的手册,以了解在第1行附近使用的正确语法”