问题描述
servlet2.py
import MysqL.connector
from MysqL.connector import Error
from MysqL.connector import errorcode
try:
connection = MysqL.connector.connect(host='localhost',database='*project',user='*****',password='*****',)
print("Connection Established")
except MysqL.connector.Error as e:
if e.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print('Somethign is wrong with username or password')
elif e.errno == errorcode.ER_BAD_DB_ERROR:
print('Database does not exist')
else:
print(e)
c = connection.cursor()
def insertsql(user):
MysqL_insert_query = "INSERT INTO python_project.test (Name) VALUES (?)",(user)
print("user:",user)
c.execute(MysqL_insert_query)
print(c.rowcount,"Record inserted successfully into test table")
def username():
user = input("Please Enter Your Name: " )
insertsql(user)
test_script.py
import servlet2
servlet2.username()
但是,一旦输入名称,我就可以建立与数据库的连接。它将无法连接并提示此错误。
OperationalError: Lost connection to MysqL server at 'localhost:3306',system error: Connection not available.
解决方法
import mysql.connector
from mysql.connector import Error
from mysql.connector import errorcode
try:
connection = mysql.connector.connect(host='127.0.0.1',database='python_project',user='root',password='catdog123',)
print("Connection Established")
#cursor = connection.cursor()
#cursor.execute("""INSERT INTO test (Name) VALUES ('harry')""")
#connection.commit()
#cursor.close()
except mysql.connector.Error as e:
if e.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print('Somethign is wrong with username or password')
elif e.errno == errorcode.ER_BAD_DB_ERROR:
print('Database does not exist')
else:
print(e)
c = connection.cursor()
def insertSQL(user):
#mySql_insert_query = """INSERT INTO test (Name) VALUES (?)""",user
print("user:",user)
print(c.rowcount,"Record inserted successfully into test table")
c.execute("""INSERT INTO test (Name) VALUES ('{}')""".format(user))
connection.commit()
def username():
user = input("Please Enter Your Name:" )
insertSQL(user)
我设法通过将插入语句VALUES更改为('{}')。format(user)
来解决该问题