Python / MySqlDB - 使用raw_input查询数据库并打印结果

时间:2018-01-20 07:11:55

标签: python mysql mysql-python raw-input

我正在尝试使用通过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)

1 个答案:

答案 0 :(得分:0)

解决了在函数末尾删除db.close和db.commit的问题。