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);