Tuy nhiên, tôi đang cố gắng thực thi truy vấn bằng Python, khi cố gắng lấy email và mật khẩu mà người dùng có đầu vào vào trang web, nó sẽ trả về "Bạn có lỗi trong cú pháp SQL của mình; Cú pháp phù hợp để sử dụng gần '' DSFS '' ở dòng 1 "[DSFS là mật khẩu không chính xác]
@login_blueprint.route['/login', methods=['GET', 'POST']]
def login[]:
if request.method == 'POST' and 'email' in request.form:
try:
email = request.form['email']
password = request.form['password']
database = mysql.connector.connect[
host=DBHost,
user=DBUser,
passwd=DBPass,
database=DB
]
cursor = database.cursor[]
query = "SELECT * FROM users WHERE [email, password] = %s, %s"
values = [email, password]
cursor.execute[query, values]
cursor.fetchall[]
return render_template['dashboard.html', email=email]
except Exception as error:
print[error]
return jsonify[result='that account does not exist']
return render_template['login.html']
Khi tôi đăng ký chi tiết, nó hoạt động tốt và nhập dữ liệu vào bảng MySQL.
@register_blueprint.route['/register', methods=['GET', 'POST']]
def register[]:
if request.method == 'POST' and 'email' in request.form:
email = request.form['email']
password = request.form['password']
database = mysql.connector.connect[
host=DBHost,
user=DBUser,
passwd=DBPass,
database=DB
]
cursor = database.cursor[]
query = "INSERT INTO users [email, password] VALUES [%s, %s]"
values = [email, password]
cursor.execute[query, values]
database.commit[]
return jsonify[result='account created, proceed to login']
return render_template['register.html']
Sử dụng phương thức fetchone []
Nếu bạn chỉ quan tâm đến một hàng, bạn có thể sử dụng phương thức
cursor.execute[operation, params=None, multi=False]
iterator = cursor.execute[operation, params=None, multi=True]
3.cursor.execute[operation, params=None, multi=False]
iterator = cursor.execute[operation, params=None, multi=True]
Phương thức
cursor.execute[operation, params=None, multi=False]
iterator = cursor.execute[operation, params=None, multi=True]
3 sẽ trả về hàng đầu tiên của kết quả:Ghi chú
Trong Python, một tuple chứa một giá trị duy nhất phải bao gồm dấu phẩy. Ví dụ, ['ABC'] được đánh giá là vô hướng trong khi ['ABC',] được đánh giá là một tuple.['abc'] is evaluated as a scalar while ['abc',] is evaluated as a tuple.
Ví dụ này chèn thông tin về một nhân viên mới, sau đó chọn dữ liệu cho người đó. Các câu lệnh được thực thi dưới dạng các hoạt động
@register_blueprint.route['/register', methods=['GET', 'POST']]
def register[]:
if request.method == 'POST' and 'email' in request.form:
email = request.form['email']
password = request.form['password']
database = mysql.connector.connect[
host=DBHost,
user=DBUser,
passwd=DBPass,
database=DB
]
cursor = database.cursor[]
query = "INSERT INTO users [email, password] VALUES [%s, %s]"
values = [email, password]
cursor.execute[query, values]
database.commit[]
return jsonify[result='account created, proceed to login']
return render_template['register.html']
1 riêng biệt:insert_stmt = [
"INSERT INTO employees [emp_no, first_name, last_name, hire_date] "
"VALUES [%s, %s, %s, %s]"
]
data = [2, 'Jane', 'Doe', datetime.date[2012, 3, 23]]
cursor.execute[insert_stmt, data]
select_stmt = "SELECT * FROM employees WHERE emp_no = %[emp_no]s"
cursor.execute[select_stmt, { 'emp_no': 2 }]
Các giá trị dữ liệu được chuyển đổi khi cần thiết từ các đối tượng Python thành thứ mà MySQL hiểu. Trong ví dụ trước, ví dụ
@register_blueprint.route['/register', methods=['GET', 'POST']]
def register[]:
if request.method == 'POST' and 'email' in request.form:
email = request.form['email']
password = request.form['password']
database = mysql.connector.connect[
host=DBHost,
user=DBUser,
passwd=DBPass,
database=DB
]
cursor = database.cursor[]
query = "INSERT INTO users [email, password] VALUES [%s, %s]"
values = [email, password]
cursor.execute[query, values]
database.commit[]
return jsonify[result='account created, proceed to login']
return render_template['register.html']
5 được chuyển đổi thành @register_blueprint.route['/register', methods=['GET', 'POST']]
def register[]:
if request.method == 'POST' and 'email' in request.form:
email = request.form['email']
password = request.form['password']
database = mysql.connector.connect[
host=DBHost,
user=DBUser,
passwd=DBPass,
database=DB
]
cursor = database.cursor[]
query = "INSERT INTO users [email, password] VALUES [%s, %s]"
values = [email, password]
cursor.execute[query, values]
database.commit[]
return jsonify[result='account created, proceed to login']
return render_template['register.html']
6.Nếu
@register_blueprint.route['/register', methods=['GET', 'POST']]
def register[]:
if request.method == 'POST' and 'email' in request.form:
email = request.form['email']
password = request.form['password']
database = mysql.connector.connect[
host=DBHost,
user=DBUser,
passwd=DBPass,
database=DB
]
cursor = database.cursor[]
query = "INSERT INTO users [email, password] VALUES [%s, %s]"
values = [email, password]
cursor.execute[query, values]
database.commit[]
return jsonify[result='account created, proceed to login']
return render_template['register.html']
2 được đặt thành @register_blueprint.route['/register', methods=['GET', 'POST']]
def register[]:
if request.method == 'POST' and 'email' in request.form:
email = request.form['email']
password = request.form['password']
database = mysql.connector.connect[
host=DBHost,
user=DBUser,
passwd=DBPass,
database=DB
]
cursor = database.cursor[]
query = "INSERT INTO users [email, password] VALUES [%s, %s]"
values = [email, password]
cursor.execute[query, values]
database.commit[]
return jsonify[result='account created, proceed to login']
return render_template['register.html']
3, @register_blueprint.route['/register', methods=['GET', 'POST']]
def register[]:
if request.method == 'POST' and 'email' in request.form:
email = request.form['email']
password = request.form['password']
database = mysql.connector.connect[
host=DBHost,
user=DBUser,
passwd=DBPass,
database=DB
]
cursor = database.cursor[]
query = "INSERT INTO users [email, password] VALUES [%s, %s]"
values = [email, password]
cursor.execute[query, values]
database.commit[]
return jsonify[result='account created, proceed to login']
return render_template['register.html']
1 có thể thực thi nhiều câu lệnh được chỉ định trong chuỗi operation
. Nó trả về một trình lặp cho phép xử lý kết quả của mỗi câu lệnh. Tuy nhiên, sử dụng các tham số không hoạt động tốt trong trường hợp này và thường là một ý tưởng tốt để tự thực hiện từng câu lệnh.Ví dụ sau chọn và chèn dữ liệu trong một thao tác
@register_blueprint.route['/register', methods=['GET', 'POST']]
def register[]:
if request.method == 'POST' and 'email' in request.form:
email = request.form['email']
password = request.form['password']
database = mysql.connector.connect[
host=DBHost,
user=DBUser,
passwd=DBPass,
database=DB
]
cursor = database.cursor[]
query = "INSERT INTO users [email, password] VALUES [%s, %s]"
values = [email, password]
cursor.execute[query, values]
database.commit[]
return jsonify[result='account created, proceed to login']
return render_template['register.html']
1 duy nhất và hiển thị kết quả của mỗi câu lệnh:operation = 'SELECT 1; INSERT INTO t1 VALUES []; SELECT 2'
for result in cursor.execute[operation, multi=True]:
if result.with_rows:
print["Rows produced by statement '{}':".format[
result.statement]]
print[result.fetchall[]]
else:
print["Number of rows affected by statement '{}': {}".format[
result.statement, result.rowcount]]
Nếu kết nối được cấu hình để tìm nạp các cảnh báo, các cảnh báo được tạo bởi hoạt động có sẵn thông qua phương thức mysqlcursor.fetchwarnings [].
Chọn từ một bảng
Để chọn từ bảng trong MySQL, hãy sử dụng câu lệnh "Chọn":
Thí dụ
Chỉ lấy một hàng:
Nhập MySQL.Connector
myDB = mysql.connector.connect [& nbsp; host = "localhost", & nbsp; user = "yourusername", & nbsp; password = "yourPassword", & nbsp; cơ sở dữ liệu = "mydatabase"]
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
]
mycursor = mydb.cursor []
mycursor.execute ["Chọn * từ khách hàng"]
myResult = mycursor.fetchall []
cho x trong myResult: & nbsp; in [x]
print[x]
Chạy ví dụ »
Lưu ý: Chúng tôi sử dụng phương thức
2, tìm nạp tất cả các hàng từ câu lệnh thực hiện cuối cùng. We use the cursor.execute[operation, params=None, multi=False]
iterator = cursor.execute[operation, params=None, multi=True]
cursor.execute[operation, params=None, multi=False]
iterator = cursor.execute[operation, params=None, multi=True]
2 method, which fetches all rows from the last executed statement.Chọn cột
Để chỉ chọn một số cột trong bảng, hãy sử dụng câu lệnh "Chọn" theo sau là tên cột:
Thí dụ
Chỉ chọn các cột tên và địa chỉ:
Nhập MySQL.Connector
myDB = mysql.connector.connect [& nbsp; host = "localhost", & nbsp; user = "yourusername", & nbsp; password = "yourPassword", & nbsp; cơ sở dữ liệu = "mydatabase"]
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
]
mycursor = mydb.cursor []
mycursor.execute ["Chọn * từ khách hàng"]
myResult = mycursor.fetchall []
cho x trong myResult: & nbsp; in [x]
print[x]
Chạy ví dụ »
Lưu ý: Chúng tôi sử dụng phương thức cursor.execute[operation, params=None, multi=False]
iterator = cursor.execute[operation, params=None, multi=True]
2, tìm nạp tất cả các hàng từ câu lệnh thực hiện cuối cùng.
cursor.execute[operation, params=None, multi=False]
iterator = cursor.execute[operation, params=None, multi=True]
Chọn cột
Để chỉ chọn một số cột trong bảng, hãy sử dụng câu lệnh "Chọn" theo sau là tên cột:
Thí dụ
Chỉ chọn các cột tên và địa chỉ:
Nhập MySQL.Connector
mycursor = mydb.cursor []
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
]
mycursor = mydb.cursor []
mycursor.execute ["Chọn * từ khách hàng"]
myResult = mycursor.fetchall []
print[myresult]
Chạy ví dụ »