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

Mysql + php với các ký tự đặc biệt như '(Apostrophe) và (Dấu ngoặc kép)

Chuỗi sql của bạn sẽ là:

INSERT INTO `table` (`row1`) VALUES ('google's site')

Đó không phải là một tuyên bố hợp lệ. Như Nanne đã viết, hãy thoát khỏi chuỗi ít nhất bằng mysql_real_escape_string: http ://php.net/manual/en/ Chức năng.mysql-real-escape-string.php

Và đọc về sql injection http://en.wikipedia.org/wiki/SQL_injection

Hãy suy nghĩ một chút:nếu ai đó đăng bài này:$_POST['text'] với giá trị:');delete from table;....

Bạn có thể nói lời tạm biệt với dữ liệu của bạn :)

Luôn lọc / thoát đầu vào!

CHỈNH SỬA:Kể từ phiên bản PHP 5.5.0 mysql_real_escape_string và phần mở rộng mysql không được dùng nữa. Vui lòng sử dụng tiện ích mở rộng mysqli và hàm mysqli ::Escape_string thay thế



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL IFNULL () Giải thích

  2. lỗi khóa ngoại mysql # 1452

  3. MySQL tạo cơ sở dữ liệu nếu không tồn tại

  4. Nhiều điều kiện AND MySQL

  5. GIỮA truy vấn sử dụng JDBC với MySQL