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

viết lại url cho tên sản phẩm

Đầu tiên: bạn có một lỗi cú pháp. [0-9+] là một lớp ký tự có thể khớp với (i) các chữ số trong dải ô 0 thông qua 9 hoặc (ii) một + dấu hiệu. Để sử dụng + như một bộ định lượng (như dự định), hãy di chuyển + sau ] , như vậy:([0-9]+) .

Thứ hai: Bạn đang sử dụng $2 trong mục của bạn, đó là tên sản phẩm. Nếu bạn muốn sử dụng ID, bạn phải sử dụng $1 .

Đây là những gì bạn cần sử dụng:

RewriteEngine On
RewriteRule ^products/([0-9]+)\-([a-z0-9_\-]+)/?$ products.php?product_id=$1 [NC,L,QSA]

Tôi đã thêm vào số sản phẩm, dấu gạch ngang và gạch dưới trong trường hợp bạn cần vào một ngày nào đó.

Thứ ba: Bạn nên biết về tiêm sql , tập lệnh của bạn không an toàn. Bạn có thể khắc phục sự cố này bằng cách sử dụng mysql_real_escape_string .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn MySQL chậm trên tuyên bố cập nhật

  2. bảng cập nhật không gian trống khi người dùng không nhập bất kỳ thứ gì vào hộp văn bản

  3. MySQL SELECT INTO OUTFILE Tùy chọn xuất

  4. # 1067 - Giá trị mặc định không hợp lệ cho 'bonusid', làm cách nào để khắc phục lỗi này?

  5. SQL DML:Giá trị ngày không chính xác (MySQL)