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

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

使用%s的Python MySQL Connector數(shù)據(jù)庫查詢失敗

使用%s的Python MySQL Connector數(shù)據(jù)庫查詢失敗

弒天下 2019-08-23 10:02:38
使用%s的Python MySQL Connector數(shù)據(jù)庫查詢失敗我有一個基本程序,應(yīng)該查詢包含用戶信息的數(shù)據(jù)庫。我正在嘗試為特定用戶選擇信息并將其打印到控制臺。這是我的代碼:import mysql.connector funcon = mysql.connector.connect(user='root', password='pass', host='127.0.0.1', database='fundata')funcursor = funcon.cursor()query = ("SELECT * FROM funtable WHERE userName=%s")uName = 'user1'funcursor.execute(query, uName)for (userName) in funcursor:     print("{}".format(userName))我將用戶名存儲在變量中,因為稍后我計劃從tkinter輸入框中獲取用戶名。當我執(zhí)行此代碼時,我收到以下錯誤:mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s' at line 1我已經(jīng)嘗試將%s放在查詢中的引號中,但隨后它逐字地搜索用戶名'%s'并且不返回任何內(nèi)容。如何更改我的代碼,以便只查詢該用戶的數(shù)據(jù)庫?謝謝。僅供參考:我使用的是python 3.3。
查看完整描述

2 回答

?
慕森卡

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

將您的funcursor.execute(query, uName)電話改為:

funcursor.execute(query, (uName, ))

第二個參數(shù)execute采用字符串的列表/元組,而不是字符串。上面的調(diào)用在傳入字符串之前創(chuàng)建了元組execute,因此不會拋出任何錯誤。

execute獲取字符串列表/元組的原因是因為它不能事先知道為了滿足您的查詢需要多少字符串


查看完整回答
反對 回復(fù) 2019-08-23
?
慕碼人2483693

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

這是因為execute期望列表或元組值作為第二個參數(shù)。逗號在現(xiàn)場創(chuàng)建一個元組,以滿足函數(shù)的要求。execute不知道在讀取之前需要在查詢中替換多少個字符串,并且它不希望兩次讀取您的查詢。所以它只是要求您查詢,然后是字符串列表或元組。即使你只想替換一個字符串,你必須先將它變成一個列表或元組,然后再傳入它。

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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