这是我的代码:def insert_ip_info(instance):
# Cursor to db
cur = db.cursor()
int_ipaddr = ipaddress_string_to_int(instance.ip_address) # converting the string into unsigned integer
# Check if IP address exits in table (stores results from previous scan)
sql_query = "SELECT * FROM " + ip_info_table_name + " WHERE ip_address = " + str(int_ipaddr)
cur.execute(sql_query)
ip_exists = len(
cur.fetchall()) # Using the len of the results only, to determine if the IP address exists in the table
if (ip_exists > 0): # The IP address is already found in the table
# Update the IP address information in the table
sql_query = "UPDATE " + ip_info_table_name + \
" SET hostname = %s , ip_location_id = %s WHERE ip_address = " + str(int_ipaddr)
sql_data = (instance.hostname, instance.ip_location_id)
else:
# Write a new line into db
sql_query = "INSERT INTO " + ip_info_table_name + \
" (ip_address,hostname,ip_location_id) " + \
"VALUES(%s,%s,%s);"
sql_data = (str(int_ipaddr), instance.hostname, instance.ip_location_id)
cur.execute(sql_query, sql_data)
cur.execute('SELECT LAST_INSERT_ID()')
res = cur.fetchone()
cur.execute('SELECT @@identity')
res2 = cur.fetchone()
print cur.lastrowid
print db.insert_id()
print res
print res2
db.commit()
以下是数据库:
^{pr2}$
当我做插入操作时,一切都像一个符咒,
但是当我尝试更新操作时,所有4次尝试(打印)都失败(打印0)。
我不知道我做错了什么。
谢谢