Python/MySqlDB - 使用 raw_input 查询数据库并打印结果
Python/MySqlDB - Query a database using raw_input and print the result
我正在尝试创建一个函数,该函数将使用通过 raw_input 插入的字符串(或字符串的一部分)查询数据库。
数据库 PManDB
只有一个 table ( accounts
) 有 3 列 ( website, username, password
).
示例:如果在列 website
中我有字符串 'www.website.com'
我想获得它插入值 'w'
或 'web'
或 'com'
在 raw_input
.
项目的完整代码是here。
下面是没有打印数据库功能的摘录:
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
想法是在 print
语句 "The research has been made with success"
之后添加一个 cursor.fetchall()
使用以下语法
result = cursor.fetchall()
print result
或者添加一个for
循环
result = cursor.fetchall()
for row in result:
print row[0]
但是代码在这两种情况下都不起作用。
你能帮我理解我错在哪里以及为什么吗?
EDIT1:根据mata评论,我添加了错误。
当我在PyCharm启动应用程序时,引入mata提出的修改,我收到以下错误
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
更新后的代码如下(仍然无法解决上述错误):
def SearchRecords(self):
search = raw_input("Insert value to be searched in the DB:")
db = MySQLdb.connect("localhost", "root", "studio", "PManDB")
cursor = db.cursor()
sql = """SELECT * FROM accounts WHERE website LIKE %s"""
data = ('%' + search + '%',)
cursor.execute(sql, data)
result = cursor.fetchall()
print result
解决了删除函数末尾的 db.close 和 db.commit 的问题。
我正在尝试创建一个函数,该函数将使用通过 raw_input 插入的字符串(或字符串的一部分)查询数据库。
数据库 PManDB
只有一个 table ( accounts
) 有 3 列 ( website, username, password
).
示例:如果在列 website
中我有字符串 'www.website.com'
我想获得它插入值 'w'
或 'web'
或 'com'
在 raw_input
.
项目的完整代码是here。
下面是没有打印数据库功能的摘录:
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
想法是在 print
语句 "The research has been made with success"
之后添加一个 cursor.fetchall()
使用以下语法
result = cursor.fetchall()
print result
或者添加一个for
循环
result = cursor.fetchall()
for row in result:
print row[0]
但是代码在这两种情况下都不起作用。
你能帮我理解我错在哪里以及为什么吗?
EDIT1:根据mata评论,我添加了错误。
当我在PyCharm启动应用程序时,引入mata提出的修改,我收到以下错误
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
更新后的代码如下(仍然无法解决上述错误):
def SearchRecords(self):
search = raw_input("Insert value to be searched in the DB:")
db = MySQLdb.connect("localhost", "root", "studio", "PManDB")
cursor = db.cursor()
sql = """SELECT * FROM accounts WHERE website LIKE %s"""
data = ('%' + search + '%',)
cursor.execute(sql, data)
result = cursor.fetchall()
print result
解决了删除函数末尾的 db.close 和 db.commit 的问题。