Câu lệnh chuẩn bị mysql php

Trong bài hướng dẫn tự học PHP và MySQL này, bạn sẽ học cách sử dụng các câu lệnh đã chuẩn bị sẵn trong MySQL bằng PHP. cách sử dụng câu lệnh đã chuẩn bị trong MySQL bằng PHP

Chuẩn bị Tuyên bố là gì?

Tuyên bố đã chuẩn bị trong MySQL

Câu lệnh đã chuẩn bị [còn được gọi là câu lệnh được tham số hóa] chỉ đơn giản là một mẫu truy vấn SQL có chứa trình giữ chỗ thay thế vì các giá trị tham số thực tế. [còn được gọi là câu lệnh được tham số hóa] chỉ đơn giản là một mẫu truy vấn SQL có chứa trình giữ chỗ thay vì giá trị tham số thực tế

This place of the place will be instead by the value in the current point to the command

MySQLi hỗ trợ sử dụng trình giữ vị trí ẩn danh [?], Như được hiển thị bên dưới. ?], Như được hiển thị bên dưới

INSERT INTO persons [first_name, last_name, email] VALUES [?, ?, ?];

Trong khi đó, PDO hỗ trợ cả vị trí giữ vị trí ẩn danh [?], cũng như các vị trí giữ vị trí được đặt tên. ?], Cũng giống như các địa chỉ liên kết được đặt tên

Một địa chỉ lưu trữ được đặt tên bắt đầu bằng dấu hai chấm [. ] theo sau là một mã định danh, như thế này

INSERT INTO persons [first_name, last_name, email]
VALUES [:first_name, :last_name, :email];

Việc thực hiện Câu lệnh đã chuẩn bị bao gồm hai giai đoạn. Chuẩn bị và Thực thi. Đã chuẩn bị Statement bao gồm hai giai đoạn. Chuẩn bị và Thực thi

  • Chuẩn bị. Ở giai đoạn chuẩn bị, một câu lệnh SQL mẫu được tạo và gửi đến cơ sở dữ liệu máy chủ. Máy chủ phân tích câu lệnh mẫu, thực hiện kiểm tra cú pháp và tối ưu hóa truy vấn và lưu trữ nó để sử dụng sau. Ở giai đoạn chuẩn bị, một câu lệnh SQL mẫu được tạo và gửi đến cơ sở dữ liệu máy chủ. Máy chủ phân tích câu lệnh mẫu, thực hiện kiểm tra cú pháp và tối ưu hóa truy vấn và lưu trữ nó để sử dụng sau
  • thực thi. Trong quá trình thực thi, các tham số giá trị được gửi đến máy chủ. Máy chủ tạo một câu lệnh từ câu lệnh mẫu và sử dụng các giá trị này để thực hiện nó. Trong quá trình thực thi, các tham số giá trị được gửi đến máy chủ. Máy chủ tạo một câu lệnh từ câu lệnh mẫu và sử dụng các giá trị này để thực hiện nó

Tuyên bố đã chuẩn bị rất hữu ích, đặc biệt trong các tình huống khi bạn thực hiện một câu lệnh cụ thể nhiều lần với các giá trị khác nhau

Ví dụ, bạn cần thực hiện một loạt câu lệnh INSERT. Tuyên bố đã chuẩn bị sẵn sẽ giúp bạn tối ưu hóa công việc này

Phần sau đây mô tả một số lợi ích chính của việc sử dụng Tuyên bố đã chuẩn bị

Ưu điểm của công việc sử dụng Báo cáo đã chuẩn bị

Câu lệnh đã chuẩn bị có thể thực hiện cùng một câu lệnh lặp đi lặp lại với hiệu quả cao, bởi vì câu lệnh chỉ được phân tích cú pháp một lần, trong khi nó có thể được thực hiện nhiều lần. can't done the same a command it it repeat with the effect, by because the command only is a phase a parse a times, while it could be done it many times

Nó cũng giảm thiểu việc sử dụng băng thông, bởi vì mỗi lần thực hiện, chỉ có các giá trị giữ chỗ cần được chuyển đến máy chủ cơ sở dữ liệu thay vì truyền cả câu lệnh SQL hoàn chỉnh

Câu lệnh đã chuẩn bị cũng cung cấp sự bảo vệ mạnh mẽ chống lại SQL injection [Hành động cố gắng truyền câu lệnh SQL để thao túng], bởi vì các giá trị tham số không được nhúng trực tiếp bên trong chuỗi truy vấn SQL. cung cấp sự bảo vệ mạnh chống lại SQL injection [Hành động cố gắng truyền câu lệnh SQL để thao túng], bởi vì các giá trị tham số cũng không được nhúng trực tiếp bên trong chuỗi truy vấn SQL

Các tham số giá trị được gửi đến cơ sở dữ liệu máy chủ được phân tách với truy vấn bằng một giao thức khác và do đó không thể xâm nhập vào nó

Máy chủ sử dụng các giá trị này trực tiếp tại điểm thực hiện, sau khi mẫu câu lệnh được phân tích cú pháp

Đó là lý do tại sao các Tuyên bố đã chuẩn bị ít bị lỗi hơn và do đó được coi là một trong những yếu tố quan trọng nhất trong bảo mật cơ sở dữ liệu. bảo mật cơ sở dữ liệu

Ví dụ sau đây sẽ cho bạn thấy Tuyên bố đã chuẩn bị được chuẩn bị thực sự hoạt động như thế nào

Ví dụ sử dụng Báo cáo đã chuẩn bị

Cách #1. Sử dụng câu lệnh đã chuẩn bị bằng MySQLi hướng thủ tục

Cách #2. Sử dụng câu lệnh đã chuẩn bị bằng MySQLi direction đối tượng

Cách #3. Sử dụng Tuyên bố đã chuẩn bị bằng PDO

Như bạn có thể thấy trong ví dụ trên, chúng tôi đã chuẩn bị sẵn câu lệnh INSERT only one times nhưng thực hiện nó nhiều lần bằng cách truyền tập hợp các tham số khác nhau

Giải thích về ví dụ về Báo cáo đã chuẩn bị [Kiểu thủ tục]

Bên trong câu lệnh SQL INSERT [dòng số 12] của ví dụ trên, các dấu hỏi được sử dụng làm trình giữ chỗ cho các giá trị của trường first_name, last_name, email. các dấu hỏi được sử dụng để giữ chỗ cho các giá trị của trường first_name, last_name, email

Hàm mysqli_stmt_bind_param[] [dòng số 16] liên kết các biến với trình giữ chỗ [?] trong mẫu câu lệnh SQL. mysqli_stmt_bind_param[] [dòng số 16] liên kết các biến với trình giữ chỗ [?] trong câu lệnh SQL mẫu

Các phần giữ chỗ [?] Sẽ được thay thế bằng các giá trị thực được giữ trong các biến tại thời điểm thực thi. Chuỗi định nghĩa kiểu được cung cấp cho đối số thứ hai, tức là chuỗi ‘sss‘ chỉ định rằng kiểu dữ liệu của mỗi biến liên kết là chuỗi. ?] Sẽ được thay thế bằng các giá trị thực được giữ trong các biến tại thời điểm thực thi. Chuỗi định nghĩa kiểu được cung cấp cho đối số thứ hai, tức là chuỗi ‘sss‘ chỉ định rằng kiểu dữ liệu của mỗi biến liên kết là chuỗi

Chuỗi định nghĩa kiểu định dạng dữ liệu của các biến liên kết tương ứng và chứa một hoặc nhiều trong các ký tự sau. xác định kiểu dữ liệu của các biến liên kết tương ứng và chứa một hoặc nhiều trong bốn ký tự sau

  • b — nhị phân [như hình ảnh, PDF, …] — nhị phân [như hình ảnh, PDF,…]
  • d — double [Số thập phân] — double [Số thập phân]
  • i — số nguyên [Số nguyên] — số nguyên [Số nguyên]
  • s — chuỗi [ký tự] — chuỗi [ký tự]

Số lượng biến liên kết và số lượng ký tự trong chuỗi định nghĩa kiểu phải khớp với số lượng giữ chỗ trong câu lệnh SQL mẫu

Sử dụng Biểu mẫu web để truyền dữ liệu và sử dụng Báo cáo đã chuẩn bị

Nếu bạn nhớ từ bài INSERT trong MySQL, chúng ta đã tạo một Form HTML để chèn dữ liệu vào cơ sở dữ liệu. CHÈN trong MySQL, chúng ta đã tạo một Form HTML để chèn dữ liệu vào cơ sở dữ liệu

Ở đây, chúng ta sẽ mở rộng ví dụ đó bằng cách thực hiện Tuyên bố đã chuẩn bị

Bạn có thể sử dụng cùng một biểu mẫu HTML, nhưng chỉ cần đảm bảo rằng bạn đang sử dụng tên tệp chính xác trong hành động thuộc tính của biểu mẫu. hành động của biểu mẫu

Đây là mã PHP đã được cập nhật để chèn dữ liệu. Nếu bạn xem ví dụ một cách thận trọng, bạn sẽ thấy chúng tôi đã không sử dụng mysqli_real_escape_opes[] để làm sạch dữ liệu đầu vào của người dùng, giống như chúng tôi đã làm trong ví dụ trước của chương trình. mysqli_real_escape opes[] to clean data đầu vào của người dùng, giống như chúng ta đã làm trong ví dụ trước của chương trình

Bởi vì trong các câu lệnh đã được chuẩn bị sẵn, dữ liệu đầu vào của người dùng không bao giờ được thay thế trực tiếp vào chuỗi truy vấn, do đó họ không cần phải làm sạch

Hướng dẫn nhận dữ liệu thông qua Biểu mẫu HTML và sử dụng Tuyên bố đã chuẩn bị với MySQLi hướng thủ tục

Hướng dẫn nhận dữ liệu thông qua Biểu mẫu HTML và sử dụng Câu lệnh đã chuẩn bị với MySQLi hướng đối tượng

Lưu ý. Mặc dù làm sạch dữ liệu đầu vào không bắt buộc trong Tuyên bố đã chuẩn bị, bạn phải luôn xác thực loại và kích thước của dữ liệu nhận được từ các nguồn bên ngoài và thực hiện các giới hạn phù hợp để bảo vệ lại các hành động.

Hướng dẫn nhận dữ liệu thông qua Biểu mẫu HTML và sử dụng Tuyên bố đã chuẩn bị với PDO

Bạn đã hiểu về Báo cáo đã chuẩn bị chưa?

Việc sử dụng Câu lệnh đã chuẩn bị mang lại cho chúng ta nhiều lợi ích khi thiết lập web. Đây là cách thực tế các lập trình viên hay làm để đảm bảo trang web đạt được sự an toàn và hiệu quả tốt. Prepared Statement mang lại cho chúng ta nhiều lợi ích khi thiết lập web. Đây là cách thực tế các lập trình viên hay làm để đảm bảo trang web đạt được sự an toàn và hiệu quả tốt

Hãy ghi nhớ cách phát triển khai Báo cáo đã chuẩn bị bằng cả 3 cách, bạn chắc chắn sẽ cần nhiều người đến với họ. Tuyên bố đã chuẩn bị bằng cả 3 cách, bạn chắc chắn sẽ cần nhiều người đến với họ

Chủ Đề