第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

CREATE TABLE IF NOT EXISTS SQL 行給定示例機器名稱

CREATE TABLE IF NOT EXISTS SQL 行給定示例機器名稱

幕布斯7119047 2023-12-12 21:17:07
我目前正在完成學(xué)校的自動腳本作業(yè)...我正在嘗試創(chuàng)建一個表(如果它不存在)。但我希望該表具有來自計算機的主機名(它在虛擬機上工作)。我嘗試在神奇的互聯(lián)網(wǎng)上進行搜索。但我找不到明確的答案。是否可以添加這樣的主機名?#!/bin/python3import psutilimport socketimport mysql.connectormachine = socket.gethostname()memory = psutil.virtual_memory()[2]disk = psutil.disk_usage('/').percentcpu = psutil.cpu_percent()#print (machine, memory, disk, cpu)def create_table():    try:        connection = mysql.connector.connect(host='192.168.0.2',                                             database='gegevens',                                             user='db_user',                                             password='Welkom01')        if connection.is_connected():            cursor = connection.cursor()            sql = "CREATE TABLE IF NOT EXISTS "+ machine("virtual_mem varchar(255), disk_usage varchar(255),cpu_usage varchar (255);")            cursor.execute(sql)            connection.commit()    finally:        if (connection.is_connected()):            cursor.close()            connection.close()            print("MySQL connection is closed")create_table()或者你們建議我采取不同的做法。因為當我嘗試像這樣運行它時,我收到了 TypeError;Traceback (most recent call last):  File "./agent.py", line 36, in <module>    create_table()  File "./agent.py", line 23, in create_table    sql = "CREATE TABLE IF NOT EXISTS "+ machine("virtual_mem varchar(255), disk_usage varchar(255),cpu_usage varchar (255);")TypeError: 'str' object is not callable通過許多 quamrana 和 S3DEV 我已經(jīng)弄清楚如何完成它......我已經(jīng)更改了第 23 行:sql = "CREATE TABLE IF NOT EXISTS "+ machine("virtual_mem varchar(255), disk_usage varchar(255),cpu_usage varchar (255);")進入:sql = f"CREATE TABLE IF NOT EXISTS {machine} (virtual_mem varchar(255), disk_usage varchar(255),cpu_usage varchar (255))"這樣就可以工作了。
查看完整描述

2 回答

?
慕哥9229398

TA貢獻1877條經(jīng)驗 獲得超6個贊

你似乎只是sql字符串錯誤。您正在嘗試將 3 個字符串添加在一起,但混淆了語法,以下是一些具有正確語法的選項:


# option 1

sql = f"CREATE TABLE IF NOT EXISTS {machine} (virtual_mem varchar(255), disk_usage varchar(255),cpu_usage varchar (255)(;"

# option 2

sql = "CREATE TABLE IF NOT EXISTS {table_name} (virtual_mem varchar(255), disk_usage varchar(255),cpu_usage varchar (255));".format(

   table_name=machine

)

基本上,代碼中的“machine”是一個字符串,并且是您在那里的sql塊,我們希望這個字符串被“注入”到我們的字符串中。


在 python 中執(zhí)行此操作的方法是使用字符串格式/格式化字符串,甚至只是簡單的連接(我更喜歡前兩個選項,因為它們更清晰)


有關(guān)更多信息,請參閱本文:https ://realpython.com/python-f-strings/


查看完整回答
反對 回復(fù) 2023-12-12
?
慕仙森

TA貢獻1827條經(jīng)驗 獲得超8個贊

您嘗試格式化 sql 查詢的方式出現(xiàn)錯誤。請更改以下行:

sql = "CREATE TABLE IF NOT EXISTS "+ machine("virtual_mem varchar(255), disk_usage varchar(255),cpu_usage varchar (255);")

對于這樣的格式字符串:

sql = f"CREATE TABLE IF NOT EXISTS {machine} (virtual_mem varchar(255), disk_usage varchar(255),cpu_usage varchar (255);"

如果您檢查 mysql 連接器提供的格式化選項會更好,這樣查詢替換將由連接器引擎執(zhí)行,這很可能可以防止 SQL 注入問題。


查看完整回答
反對 回復(fù) 2023-12-12
  • 2 回答
  • 0 關(guān)注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號