[英]How to do an insert in the database with Python
我有一個執行 Moodle 版本檢查的 Python 腳本。 檢查 Moodle 版本后,我想插入數據庫,但出現以下錯誤:
line 337
mycursor = db.cursor()
TabError: inconsistent use of tabs and spaces in indentation
這是使用和有問題的代碼:
import import mysql.connector
...
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " + version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
print ("\nVersion not found")
return False
報的錯誤是關於代碼縮進的,但是我不知道如何解決這個問題以在數據庫中插入版本控制結果。
您在這里有一個小小的誤解,在 python 中的任何 function 中,您需要在開始編寫任何代碼之前提供一個縮進(制表符),
即結構是
def your_functionname(parameters)
< you code here >
因此,以正確的方式,您的代碼應如下所示
...
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " +
version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="",
database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
print ("\nVersion not found")
return False
您的代碼需要縮進 function 定義之后的部分。
所以代替這個,
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " + version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
你應該有這個,
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " + version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
我不知道您的代碼的意圖,但看起來您可能還想包含一個else
語句,
else:
print ("\nVersion not found")
return False
如果版本:= 0,只需標記該行:
僅標識這一行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.