如何将python程序与数据库连接?
我是python的初学者。我有一个关于access系统的项目,它使用python编码并连接到数据库。当我运行代码时,它没有连接到数据库,我不知道如何将用户输入与数据库值进行比较如何将python程序与数据库连接?,python,database,window,Python,Database,Window,我是python的初学者。我有一个关于access系统的项目,它使用python编码并连接到数据库。当我运行代码时,它没有连接到数据库,我不知道如何将用户输入与数据库值进行比较 import pymysql,time def login(): db = pymysql.connect(host='localhost',user='root',password='',db='ghost') cursor = db.cursor() while True:
import pymysql,time
def login():
db = pymysql.connect(host='localhost',user='root',password='',db='ghost')
cursor = db.cursor()
while True:
usercode = input("please enter your usercode: ")
password = input("please enter your password: ")
find_user = ("SELECT * FROM `user` WHERE usercode ='$usercode' AND password = '$password'")
cursor.execute(find_user)
results = cursor.fetchall()
if results:
for i in results:
print("SUCCESS "+i[2])
#return("exit")
break
else:
print("usercode and password not recognised")
again = input("Do you want to try again?(y/n): ")
if again.lower() == "n":
print("Goodbye")
time.sleep(1)
#return("exit")
break
login()
我用升华文本3作为参考。当我以cmd运行代码时
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Dell Inspiron Mini>D:
D:\>xampp\htdocs\T1.py
please enter your usercode: 7803069
please enter your password: 3069
usercode and password not recognised
Do you want to try again?(y/n):
我已经在数据库中输入了正确的用户代码和密码。
我希望你能帮助我“从`user`中选择*其中usercode='$usercode'和password='$password'
将在数据库中搜索$usercode
和$password
。您需要替换这些值
理想情况下,使用SQL绑定/参数化查询
示例:
usercode = input("please enter your usercode: ")
password = input("please enter your password: ")
sql = "SELECT * FROM `user` WHERE usercode = %s AND password = %s"
cursor.execute(sql, (usercode, password))
在PyMySQL github页面上可以找到更多示例:
如果不想使用绑定,也可以通过格式化语句来自行构建语句 注意:在生产环境中,这是一种安全风险,绑定是实现这一点的首选方法,下面的示例实际上只是为了展示一种替代方法
usercode = input("please enter your usercode: ")
password = input("please enter your password: ")
sql = "SELECT * FROM `user` WHERE usercode='{}' AND password='{}'".format(usercode, password)
cursor.execute(sql)
它未连接到数据库
如果您收到错误消息,请将其添加到上面的问题中。您还可以尝试使用相同的凭据与任何其他DB管理器连接到您的DB,以确保这不是用户名/密码/DB的问题。我在问题上添加了cmd结果。我不知道如何连接数据库我已经改变了。然后我再次运行程序,但仍然有错误否,请不要建议“手动”格式化查询字符串。这应该始终通过绑定完成。这就是错误。。。。。C:\Users\Dell Inspiron Mini>D:D:\>xampp\htdocs\T1.py请输入您的用户代码:7803069请输入您的密码:3069回溯(最近一次调用):文件“D:\xampp\htdocs\T1.py”,第29行,登录打印(“成功”+i[2])第17行,登录()文件“D:\xampp\htdocs\T1.py”中,类型错误:只能连接str(不是“int”)到str@SyameezaNatashaprint(“SUCCESS”+str(i[2])
-同样,使用格式可以更好地实现这一点,因为它将为您处理类型转换。@SyameezaNatasha请阅读您刚刚发布的错误信息。它准确地告诉你问题出在哪里,出在哪里。您尝试使用+运算符将字符串SUCCESS与i[2]
中的结果中的整数连接起来。