gpt4 book ai didi

python - 与 MySQL 通信时,我的 Python 脚本没有错误,仍然没有变化

转载 作者:行者123 更新时间:2023-11-29 07:55:57 25 4
gpt4 key购买 nike

所以基本上我正在开发这个 python 脚本,它从 sqlite 文件读取数据并将其与 MySQL 服务器同步(上传数据)。该脚本似乎很好,因为我没有收到任何错误,但每当我在 phpMyAdmin 中查看更改时,什么也没有发生。

这是我的完整代码:

#!/usr/bin/python2.7
__author__ = ''

import sys
import sqlite3 as lite
import MySQLdb as mysql
c=0
liteDB = ''
for arg in sys.argv:
c=c+1
if c==2:
liteDB = arg
SQLServer = '*********'
SQLUser = '***********'
SQLPass = '***********'
SQLDB = '*************'
try:
conMSQL = mysql.connect(SQLServer, SQLUser, SQLPass, SQLDB)
curMSQL = conMSQL.cursor()
try:
conLite = lite.connect(liteDB)
curLite = conLite.cursor()
curLite.execute('SELECT * FROM Ventas')
while True:
row=curLite.fetchone()
if row == None:
break
texto = 'INSERT INTO Ventas VALUES (' + str(row[0]) + ',' + str(row[1]) + ',' + str(row[2]) + ',' + str(row[4]) + ',' + str(row[3]) + ',' + str(row[5]) + ',' + str(row[6]) + ',' + str(row[8]) + ',' + str(row[7]) + ',' + str(row[9]) + ',' + str(row[10]) + """,'""" + row[11] + """')"""
print texto
curMSQL.execute('INSERT INTO Ventas VALUES (' + str(row[0]) + ',' + str(row[1]) + ',' + str(row[2]) + ',' + str(row[4]) + ',' + str(row[3]) + ',' + str(row[5]) + ',' + str(row[6]) + ',' + str(row[8]) + ',' + str(row[7]) + ',' + str(row[9]) + ',' + str(row[10]) + """,'""" + row[11] + """');""")
conLite.commit()
except lite.Error, e:
if conLite:
conLite.rollback()
print "Error %s:" % e.args[0]
finally:
if conLite:
conLite.close()
except mysql.Error, e:
print "Error MySQL %s:" % e.args[0]
sys.exit(1)
finally:
if conMSQL:
conMSQL.close()

这是我获取 sqlite 数据并将其插入 MySQL 服务器的具体部分

while True:
row=curLite.fetchone()
if row == None:
break
texto = 'INSERT INTO Ventas VALUES (' + str(row[0]) + ',' + str(row[1]) + ',' + str(row[2]) + ',' + str(row[4]) + ',' + str(row[3]) + ',' + str(row[5]) + ',' + str(row[6]) + ',' + str(row[8]) + ',' + str(row[7]) + ',' + str(row[9]) + ',' + str(row[10]) + """,'""" + row[11] + """')"""
print texto
curMSQL.execute('INSERT INTO Ventas VALUES (' + str(row[0]) + ',' + str(row[1]) + ',' + str(row[2]) + ',' + str(row[4]) + ',' + str(row[3]) + ',' + str(row[5]) + ',' + str(row[6]) + ',' + str(row[8]) + ',' + str(row[7]) + ',' + str(row[9]) + ',' + str(row[10]) + """,'""" + row[11] + """');""")
conLite.commit()

我是 python 新手,因此非常感谢您的帮助,提前致谢!

最佳答案

您需要 commit() mysql 数据库,因为您要插入到其中,而不是 sqlite 数据库。编辑:是的,您绝对应该阅读有关如何参数化查询而不是将字符串连接在一起的信息,它甚至没有被转义。

关于python - 与 MySQL 通信时,我的 Python 脚本没有错误,仍然没有变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25150388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com