mysql.connector 不使用 python 命令插入,但手动查询有效
mysql.connector doesn' t insert with python command, but manually the query works
所以在我对 Whosebug 的研究没有给我带来任何进一步的帮助之后,我的代码(我不能 post 确切的代码,因为这是我在工作中遇到的问题)和问题:
import mysql.connector
.
.
.
cnx = mysql.connector.connect(user, password, host, database)
cursor = cnx.cursor()
for-loop:
if condition:
cursor.execute("INSERT INTO table (the_columns) VALUES (%s)", (my_values))
cnx.commit()
我已经尝试手动插入并且成功了,但是我的 python 代码无法插入。
手动插入:
INSERT INTO table (column1,...,column7) VALUES (string1,....,string6, now())
我没有错误消息,我只能查看数据库,发现新值不存在。
还有其他人遇到过这个问题吗?谁能建议可能是什么问题?
可能是因为您不必将变量放在 "(" ")" 之间?
您是否尝试将值直接放在 sql 中,而不是包含它的变量?
"manually" 是什么意思?
无论如何,在将此数组作为第二个参数传递之前,您应该将所有变量放在一个数组中:
query = (
"INSERT INTO employees (emp_no, first_name, last_name, hire_date) VALUES (%s, %s, %s, %s)"
)
data = (2, 'Jane', 'Doe', datetime.date(2012, 3, 23))
cursor.execute(insert_stmt, data)
编辑:我刚刚检查过,如果您 google 您的问题,那就是主要的例子……等等,您搜索过这个吗?这是最好的等待学习伙计:在寻求帮助之前自己搜索。
尝试将格式变量转换为元组。如果这不起作用。尝试将查询单独创建为变量并将其打印出来并直接在 sql 控制台中 运行。您可能会遇到更有意义的错误。
cnx = mysql.connector.connect(user, password, host, database)
cursor = cnx.cursor()
for-loop:
if condition:
cursor.execute("INSERT INTO table (the_columns) VALUES (%s)", (my_values,))
cnx.commit()
或
cnx = mysql.connector.connect(user, password, host, database)
cursor = cnx.cursor()
for-loop:
if condition:
sql = "INSERT INTO table ({}) VALUES ({})".format(the_columns,my_values)
print(sql)
cursor.execute(sql)
cnx.commit()
所以在我对 Whosebug 的研究没有给我带来任何进一步的帮助之后,我的代码(我不能 post 确切的代码,因为这是我在工作中遇到的问题)和问题:
import mysql.connector
.
.
.
cnx = mysql.connector.connect(user, password, host, database)
cursor = cnx.cursor()
for-loop:
if condition:
cursor.execute("INSERT INTO table (the_columns) VALUES (%s)", (my_values))
cnx.commit()
我已经尝试手动插入并且成功了,但是我的 python 代码无法插入。
手动插入:
INSERT INTO table (column1,...,column7) VALUES (string1,....,string6, now())
我没有错误消息,我只能查看数据库,发现新值不存在。 还有其他人遇到过这个问题吗?谁能建议可能是什么问题?
可能是因为您不必将变量放在 "(" ")" 之间? 您是否尝试将值直接放在 sql 中,而不是包含它的变量? "manually" 是什么意思?
无论如何,在将此数组作为第二个参数传递之前,您应该将所有变量放在一个数组中:
query = (
"INSERT INTO employees (emp_no, first_name, last_name, hire_date) VALUES (%s, %s, %s, %s)"
)
data = (2, 'Jane', 'Doe', datetime.date(2012, 3, 23))
cursor.execute(insert_stmt, data)
编辑:我刚刚检查过,如果您 google 您的问题,那就是主要的例子……等等,您搜索过这个吗?这是最好的等待学习伙计:在寻求帮助之前自己搜索。
尝试将格式变量转换为元组。如果这不起作用。尝试将查询单独创建为变量并将其打印出来并直接在 sql 控制台中 运行。您可能会遇到更有意义的错误。
cnx = mysql.connector.connect(user, password, host, database)
cursor = cnx.cursor()
for-loop:
if condition:
cursor.execute("INSERT INTO table (the_columns) VALUES (%s)", (my_values,))
cnx.commit()
或
cnx = mysql.connector.connect(user, password, host, database)
cursor = cnx.cursor()
for-loop:
if condition:
sql = "INSERT INTO table ({}) VALUES ({})".format(the_columns,my_values)
print(sql)
cursor.execute(sql)
cnx.commit()