Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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
无法从_mysqlpython包执行sql插入_Python_Mysql - Fatal编程技术网

无法从_mysqlpython包执行sql插入

无法从_mysqlpython包执行sql插入,python,mysql,Python,Mysql,我正在尝试使用python的_Mysql包向Mysql表插入一个查询。我写的查询是: que = '''insert into all_prices(date,market,commodity,variety,arrival,Minimum_Price,Maximum_Price,Modal_Price,source,state)values('''+str(a)+''','''+market_name+''','''+commodity+''','''+variety+''','''+arri

我正在尝试使用python的_Mysql包向Mysql表插入一个查询。我写的查询是:

que = '''insert into all_prices(date,market,commodity,variety,arrival,Minimum_Price,Maximum_Price,Modal_Price,source,state)values('''+str(a)+''','''+market_name+''','''+commodity+''','''+variety+''','''+arrival+''','''+Min_Price+''','''+Max_Price+''','''+Modal_Price+''','''+'''delagrimarket,delhi)'''

db.query(que)
que的值之一是:

que = insert into all_prices(date,market,commodity,variety,arrival,Minimum_Price,Maximum_Price,Modal_Price,source,state)values(1,azadpur,Apple,Royal Delicious,899,6000,11000,8200,delagrimarket,delhi)
但我得到了一些错误,比如:

_mysql_exceptions.ProgrammingError: (1064, "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 'Delicious,899,6000,11000,8200,delagrimarket,delhi)' at line 1")
有人能帮你解决这个问题吗。

你可以试试这个:

que = '''
insert into
all_prices
(date, market, commodity, variety, arrival, Minimum_Price, Maximum_Price, Modal_Price, source, state)
values('{0}', '{1}', {2}, '{3}', '{4}', '{5}', '{6}', '{7}', 'delagrimarket', 'delhi')'''
.format(str(a), market_name, commodity, variety, arrival, Min_Price, Max_Price, Modal_Price)
db.query(que)
更清洁的办法是:

vals = (str(a), market_name, commodity, variety, arrival, Min_Price, Max_Price, Modal_Price)
que = '''
insert into
all_prices
(date, market, commodity, variety, arrival, Minimum_Price, Maximum_Price, Modal_Price, source, state)
values('{0}', '{1}', {2}, '{3}', '{4}', '{5}', '{6}', '{7}', 'delagrimarket', 'delhi')
'''
db.query(que.format(*vals))
如果希望使用不同的值多次执行同一查询,则第二种方法非常有用


查看此文件以了解有关string.format的更多信息。更好地使用类似的字符串格式

que = '''insert into all_prices(date,market,commodity,variety,arrival,Minimum_Price,Maximum_Price,Modal_Price,source,state)values(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)'''
vals = (str(a), market_name, commodity, variety, arrival, Min_Price, Max_Price, Modal_Price, "delagrimarket", "delhi")
con.query(que % values)

有关字符串格式的更多信息,请查看。

将每个值包装在
''
之间,如
('value1','value2')
我回答了这个问题,认为它是用于PHP的。我删除了我发布的答案。就mysql而言,值必须在
''