這個問題在這里已經有了答案: 如何在 Python 的 SQL 陳述句中使用變數? (5 個回答) 1 小時前關閉。
在下面的代碼中,我有一個代表 mac 號的字串。我想在我的查詢中使用它。通常它會動態變化,因為我想以這種方式使用它。當我在下面運行我的代碼時,我得到了錯誤
_handle_result 中的檔案“/usr/local/lib/python2.7/dist-packages/mysql/connector/connection.py”,第 395 行引發 errors.get_exception(packet) mysql.connector.errors.ProgrammingError: 1054 (42S22) :“where 子句”中的未知列“B45D50CFEF6A”
import os
import mysql.connector
from mysql.connector.constants import ClientFlag
import json
execfile("/home/manager/test/mysqlconnector.py")
active_ip = ""
hostname = ""
group_id = 0
active_mac = "b45d50cfef6a"
query = "select epp_active_ip, epp_hostname, epp_group_id from epp_inventory where epp_active_mac = " active_mac.upper()
cursor = connection.cursor(dictionary=True)
cursor.execute(query)
rows = cursor.fetchall()
#active_ip = ""
#hostname = ""
#group_id = 0
for row in rows:
active_ip = row["epp_active_ip"]
hostname = row["epp_hostname"]
group_id = row["epp_group_id"]
print(group_id)
uj5u.com熱心網友回復:
我像這樣更改我的代碼。它沒有給出錯誤。但是列印部分不起作用。我無法從print(group_id)獲取輸出 當我運行我的代碼時,唯一的輸出是 ('Connected to MySQL Server version', u'5.7.36-0ubuntu0.18.04.1') ("You're connected to database :)
import os
import mysql.connector
from mysql.connector.constants import ClientFlag
import json
execfile("/home/manager/test/mysqlconnector.py")
active_ip = ""
hostname = ""
group_id = 0
active_mac = "b45d50cfef6a"
query = "select epp_active_ip, epp_hostname, epp_group_id from epp_inventory where epp_active_mac = '{active_mac.upper()}'"
cursor = connection.cursor(dictionary=True)
cursor.execute(query)
rows = cursor.fetchall()
#active_ip = ""
#hostname = ""
#group_id = 0
for row in rows:
active_ip = row["epp_active_ip"]
hostname = row["epp_hostname"]
group_id = row["epp_group_id"]
print(group_id)
uj5u.com熱心網友回復:
選擇字串列時,SQL 語法需要單引號。
用query =以下內容替換該行:
query = f"select epp_active_ip, epp_hostname, epp_group_id from epp_inventory where epp_active_mac = '{active_mac.upper()}'"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/409062.html
標籤:
下一篇:在mysql中計算總數
