Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tốt nhất để thoát khỏi đầu vào của người dùng cho Biểu thức chính quy trong MySQL là gì?

AFAIK, không có cách thoát gốc nào cho MySQL regex. Bạn có thể làm điều đó bằng PHP với preg_quote (http://www.php.net/manual/en/ Chức năng.preg-quote.php) có thể sẽ thực hiện công việc này cho bạn, nhưng rõ ràng là không được thiết kế cho mục đích này.

Cách ưa thích của tôi nếu tôi ở trong trường hợp của bạn là tạo một danh sách trắng regex trong PHP mà sau đó bạn có thể áp dụng cho chuỗi nguy hiểm của mình:

$safeString = preg_replace('/[^\w]/','',$dangerousString);

Thao tác này sẽ xóa mọi ký tự không phải từ (tức là bất kỳ ký tự nào ngoại trừ A-Za-z0-9_) khỏi chuỗi của bạn.

NB Tôi tin rằng các câu trả lời khác được đưa ra sẽ không xóa / thoát khỏi các ký tự đặc biệt của regex, mà tôi tin rằng đó là yêu cầu của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thay đổi công cụ mặc định mysql thành innodb

  2. Cách triển khai MySQL trên Ubuntu và được quản lý hoàn toàn

  3. Cài đặt Máy chủ Web trong FreeBSD 6.0 với Apache 2.2, MySQL 5.0 và PHP 5 - Phần 3

  4. Laravel Eloquent chọn tất cả các hàng có max create_at

  5. localhost so với 127.0.0.1 trong mysql_connect ()