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

Vệ sinh khi lưu trữ mảng được tuần tự hóa

Luôn luôn sử dụng mysql_real_escape_string khi xử lý các chuỗi có thể có dấu ngoặc kép / dấu gạch chéo. Nếu không, bạn sẽ nhận được các truy vấn hỏng / độc hại. Đầu ra của serialize() đôi khi có dấu ngoặc kép / dấu gạch chéo, vì vậy bạn nên sử dụng nó. Tuy nhiên, không cần phải tuần tự hóa từng mục của mảng trước.

$details['name']  = $_POST['name'];
$details['email'] = $_POST['email'];
$details['phone'] = $_POST['phone'];

$serializedDetails = mysql_real_escape_string(serialize($details));

Chỉ như một ví dụ:tuần tự hóa "hello" sẽ cung cấp cho bạn:s:5:"hello" .

$data  = 's:5:"hello"';
$query = 'INSERT INTO tbl (data) VALUES ("' . $data . '")';

// leads to a syntax error from mysql
// (plus it's a huge security hole)
mysql_query($query);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để thực thi nhiều truy vấn mysql cùng nhau trong PHP?

  2. Ánh xạ JPA:QuerySyntaxException:foobar không được ánh xạ ...

  3. HQL với kiểm tra Null cho mối quan hệ một-một

  4. Làm thế nào bạn có thể hiển thị số 0 trong một hàng bằng cách sử dụng động năm và tháng trong một khoảng thời gian?

  5. Dấu thời gian không có thay đổi khi cập nhật