我不明白为什么我定义的函数不起作用。没有错误消息,只是没有 INSERT 到表中......在社区的帮助下,这里是对初始问题的编辑,其中包含更多信息:
编辑----------------
测试 1 >> 作品
import mysql.connector
db = mysql.connector.connect(host="localhost",
user="root",
passwd="",
database="test_base")
mycursor = db.cursor()
def testa():
mycursor.execute("INSERT INTO test_table (Time, trade_ID, Price, Quantity) VALUES (%s,%s,%s,%s)",
(678228251973, 239938314,"19.97000000","25.03000000"))
db.commit()
testa()
测试 2 >> 不起作用
def testb(tablename):
mycursor.execute("INSERT INTO '{0}' (Time, trade_ID, Price, Quantity) VALUES (%s,%s,%s,%s)".format(tablename),
(678228251973, 239938314,"19.97000000","25.03000000"))
db.commit()
testb('test_table')
错误=
mysql.connector.errors.ProgrammingError: 1064 (42000): 你有一个 SQL语法错误;检查对应于您的手册 用于在“test_table”附近使用正确语法的 MySQL 服务器版本 (Time, trade_ID, Price, Quantity) VALUES (678228251973,239938314,'1' at line 1"
测试 3 >> 不起作用
def testb(tablename):
mycursor.execute(f"INSERT INTO '{0}' (Time, trade_ID, Price, Quantity) VALUES (%s,%s,%s,%s)".format(tablename),
(678228251973, 239938314,"19.97000000","25.03000000"))
db.commit()
testb('test_table')
error =(注意这个中第 1 行的“19.9700000”与测试 2 中第 1 行的“1”(???)
mysql.connector.errors.ProgrammingError: 1064 (42000): 你有一个 SQL语法错误;检查对应于您的手册 用于在“0”附近使用正确语法的 MySQL 服务器版本 (Time, trade_ID, Price, Quantity) VALUES (678228251973,239938314,'19.9700000' 在第 1 行
测试 4 >> 新方法都在一起/也不起作用
import pymysql
conn=pymysql.connect(host="localhost", user="root", passwd="", database="test_base")
cur = conn.cursor()
def insertData(Tablename,Time,trade_ID,Price,Quantity):
try :
cur.execute(f"INSERT INTO '{Tablename}' (Time, trade_ID, Price, Quantity) VALUES ({Time},{trade_ID}, {Price}, {Quantity})")
conn.commit()
except Exception as e:
conn.rollback()
insertData('test_table', 1678440087935, 240165118, 16.73000000, 88)
conn.close()
error = 没有错误消息但不起作用...