#endcding=utf-8
import MySQLdb
conn = MySQLdb.connect{
host='localhost'
port=3306,
user='root',
passwd='admin
db='db01',
charset='utf8
)
cur = conn.cursor()
count = cur.execute("select * from t_r_def_audit")
results = cur.fetchmany(count)
provcode = cur.execute("select * from t_r_params where
param_tag='PROVINCE_CODE' and param_code not in(1,95,99)")
provResults = cur.fetchmany(provcode)
i = 0
sql = "insert into ti_r_audit values({0},{1},{2},{3})"
values = "["
for result in results:
i = i+1
prev = result[8]
audit_id = result[0]
if(prev == "1"):
prov = 31
for index in range(prov):
values =values + "("+str(i)+","+audit_id+",'"+provResults[index]
[0]+"',0),"
i = i+1
elif prev=="0":
values =values + "("+str(i)+","+audit_id+",'"+provResults[31][0]+"',0),"
values = values + "]"
cur.executemany(sql,values)
cur.close
conn.commit()
conn.close()
manuell vernäht die Parameter von SQL, mit executableemany Implementierung von SQL, aber nach der Implementierung des Skripts wird Der Fehler gemeldet wird wie folgtpython2.7 Typeerror: nicht alle während Zeichenfolge konvertiert Argumente Formatierung
λ python audit.py
Traceback (most recent call last):
File "audit.py", line 34, in <module>
cur.executemany(sql,values)
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 255, in
executemany
self.errorhandler(self, TypeError, msg)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in
defaulterrorhandler
raise errorclass, errorvalue
TypeError: not all arguments converted during string formatting
schreibt manuelle Parameter ihrer eigenen und hat keine Fehler, was darauf hinweist, dass das Skript sollte kein Problem sein, das Problem in dem Splicing-sQL-Parameter sein kann, aber nicht finden, wo es ein Problem
; Sehen Sie sich das Syntax-Highlight an. Bitte schneiden Sie es auf eine [mcve] – jonrsharpe