Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sử dụng biến với MySQL Prepared Statement

Quy trình

  1. Gán tên bảng cho biến @yourTableName.
  2. Xây dựng chuỗi truy vấn bằng CONCAT() gán cho biến @query.
  3. PREPARE statement từ biến.
  4. EXECUTE statement.

1. Tạo bảng

mysql> create table DemoTable (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName varchar(20),
    LastName varchar(20)
);
Query OK, 0 rows affected (0.53 sec)

2. Chèn dữ liệu

mysql> insert into DemoTable(FirstName,LastName) values('John','Smith');
mysql> insert into DemoTable(FirstName,LastName) values('David','Miller');
mysql> insert into DemoTable(FirstName,LastName) values('John','Doe');
mysql> insert into DemoTable(FirstName,LastName) values('Chris','Brown');

3. Xem dữ liệu

mysql> select * from DemoTable;
+----+-----------+----------+
| Id | FirstName | LastName |
+----+-----------+----------+
| 1  | John      | Smith    |
| 2  | David     | Miller   |
| 3  | John      | Doe      |
| 4  | Chris     | Brown    |
+----+-----------+----------+
4 rows in set (0.00 sec)

4. Thực thi Prepared Statement động

mysql> set @yourTableName := 'DemoTable';
mysql> set @query := CONCAT('select `LastName` from ', @yourTableName, ' where Id=3');
mysql> prepare myStatement from @query;
mysql> execute myStatement;

Kết quả:

+----------+
| LastName |
+----------+
| Doe      |
+----------+
1 row in set (0.00 sec)

Ứng dụng: Xây dựng SQL động trong stored procedure, tránh SQL Injection bằng cách validate tên bảng/cột trước khi CONCAT.