我正在尝试使用通过raw_input插入的字符串(或字符串的一部分)来创建一个查询数据库的函数。
数据库PManDB
只有一个表(accounts
),其中包含3列(website, username, password
)。
示例:如果在website
列中,我有字符串'www.website.com'
我希望在{{1}中插入值'w'
或'web'
或'com'
}}。
项目的完整代码是here 在没有打印数据库功能的提取下面:
raw_input
我们的想法是使用以下sintax在def SearchRecords(self):
search = raw_input("Insert value to be searched in the DB:")
db = MySQLdb.connect("localhost", "root", "pass", "PManDB")
cursor = db.cursor()
sql = """SELECT * FROM accounts WHERE website LIKE %s"""
data = (search)
try:
# Execute the SQL command
cursor.execute(sql, data)
print "The research has been made with success"
except:
# Rollback in case there is any error
print "There is an error"
db.rollback()
# disconnect from server
语句cursor.fetchall()
之后添加print
"The research has been made with success"
或者添加result = cursor.fetchall()
print result
循环
for
但是在这两种方式中代码都不起作用。
请你帮我理解我错在哪里以及为什么?
EDIT1:根据mata评论,我添加了错误 当我在PyCharm中启动应用程序,引入mata提出的修改时,我收到以下错误
result = cursor.fetchall()
for row in result:
print row[0]
更新的代码如下(仍然无法解决上述错误):
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
答案 0 :(得分:0)
解决了在函数末尾删除db.close和db.commit的问题。