我正在尝试连接mysql并更改信息,但不起作用。
main.py
import pymysql
def connect_setting():
# Trying to connect
db_connection = None
try:
db_connection = pymysql.connect(
user='db',
passwd='password',
host='127.0.0.1',
db='test',
charset='utf8'
)
# If connection is not successful
except:
print("Can't connect to database")
return 0
# If Connection Is Successful
print("Connected")
# Making Cursor Object For Query Execution
global cursor
cursor = db_connection.cursor()
def get_off():
sql = '''INSERT INTO \` -100 \` '''
cursor.execute(sql)
db_connection.commit()
index.py
from main import get_off as sql
sql()
错误
raceback (most recent call last):
File "/workspace/Kakao_points/index.py", line 3, in <module>
sql()
File "/workspace/Kakao_points/main.py", line 30, in get_off
cursor.execute(sql)
NameError: name 'cursor' is not defined
我已经定义了游标,但我猜python在下一个def中没有得到信息。有人请帮助..?
问题来源:stackoverflow
您仅在连接失败时设置“ cursor”,因为您将这些行放在了“ except:”块中。这两行应该在try:
块中。
您还需要使db_connection全局,以便可以在其他函数中使用它。
def connect_setting():
global db_connection
# Trying to connect
db_connection = None
try:
db_connection = pymysql.connect(
user='db',
passwd='password',
host='127.0.0.1',
db='test',
charset='utf8'
)
# Making Cursor Object For Query Execution
global cursor
cursor = db_connection.cursor()
# If Connection Is Successful
print("Connected")
# If connection is not successful
except:
print("Can't connect to database")
return 0
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。