我是新手。我想问一下这个代码可能有什么问题:
'SELECT * FROM A3A_SIS.customer_info WHERE cust_name LIKE %' +self.le_ci_search.text()+ '%'
此行返回以下错误:
typeerror:需要一个类似字节的对象,而不是“tuple”。我正在尝试搜索一个列名,其中有一个单词lopez。
更新#1:
我建议使用以下代码:
def CustSearch(self):
search_text = '%{}%'.format(self.le_ci_search.text())
con = mdb.connect(user='root', passwd='password',
host='localhost', database='A3A_SIS')
with con:
cur = con.cursor()
query = ('SELECT * FROM A3A_SIS.customer_info WHERE cust_name LIKE %s', (search_text))
if cur.execute(query):
QMessageBox.information(self, "Announcement.","Data was found!")
else:
QMessageBox.information(self, "Announcement.","No data was found!")
con.close()
我有个错误:
回溯(最近一次呼叫):
文件“/users/anthonygaupo/desktop/a3asis/a3a\u func.py”,第409行,在custsearch if cur.execute(query)中:
文件“/users/anthonygaupo/anaconda3/lib/python3.6/site packages/mysqldb/cursors.py”,第250行,在execute self.errorhandler(self,exc,value)中
文件“/users/anthonygaupo/anaconda3/lib/python3.6/site packages/mysqldb/connections.py”,第50行,在defaulterrorhandler中增加errorvalue
文件“/users/anthonygaupo/anaconda3/lib/python3.6/site packages/mysqldb/cursors.py”,第247行,在execute res=self.\u query(query)中
文件“/users/anthonygaupo/anaconda3/lib/python3.6/site packages/mysqldb/cursors.py”,第411行,在查询rowcount=self.\u do\u query(q)中
文件“/users/anthonygaupo/anaconda3/lib/python3.6/site packages/mysqldb/cursors.py”,第374行,在查询db.query(q)中
文件“/users/anthonygaupo/anaconda3/lib/python3.6/site packages/mysqldb/connections.py”,第277行,在query\u mysql.connection.query(self,query)中
typeerror:需要类似字节的对象,而不是“tuple”
我是mysql工作台
1条答案
按热度按时间zmeyuzjn1#
您需要将搜索文本(包括%字符)放在引号中。
但你不应该这样做。在sql语句外汇编值并使用参数替换:
编辑
您正在创建一个元组并将其作为查询传递给游标。我说要做的是创建一个字符串,并将其加上参数传递给游标: