作为一个mysql的初学者,写这篇是因为作者最近在写作业的时候踩了血坑,因为前期用的是sqlite,由于先入为主,所以刚开始写代码的时候还是用的 ? , 但是调试的时候怎么也不对,问gpt也没有答到关键的点上,整了一晚上。
mysql中的占位符一定要用 %s;
sql_add = f"INSERT INTO pull (pullid,`index`,owner,repo,created,checktime,status) VALUES (%s,%s,%s,%s,%s,%s,%s);"
在sqlite3中的占位符则是用的 ? 。
insert = f"INSERT INTO {table_name} (AMOUNT,TYPE, DATE, COMMENT) VALUES (?, ?, ?, ?)"
cursor.execute(insert, (new_amount, new_type, new_date, new_comment))