Trước tiên, hãy nhớ thoát khỏi bất kỳ chuỗi nào đến với bạn qua ĐĂNG, NHẬN hoặc YÊU CẦU (đọc kỹ về các cuộc tấn công đưa vào SQL nếu bạn không chắc tại sao).
Một cái gì đó như thế này có thể hoạt động:
$semaphore = false;
$query = "UPDATE contacts SET ";
$fields = array('tel','fax','email');
foreach ($fields as $field) {
if (isset($_POST[$field]) and !empty($_POST[$field]) {
$var = mysql_real_escape_string($_POST[$field]);
$query .= uppercase($field) . " = '$var'";
$semaphore = true;
}
}
if ($semaphore) {
$query .= " WHERE Cust_Name = '$cst'";
mysql_query($query);
}
NB :Đừng bao giờ chỉ lặp qua mảng $ _POST của bạn để tạo câu lệnh SQL. Đối thủ có thể thêm các trường POST bổ sung và có thể gây ra sự nghịch ngợm. Việc lặp qua một mảng đầu vào của người dùng cũng có thể dẫn đến một vectơ chèn:tên trường cần được thêm vào câu lệnh, có nghĩa là chúng là một vectơ tiềm năng. Các kỹ thuật ngăn chặn tiêm chuẩn (các tham số câu lệnh được chuẩn bị sẵn, các chức năng trích dẫn do trình điều khiển cung cấp) sẽ không hoạt động đối với các số nhận dạng. Thay vào đó, hãy sử dụng danh sách trắng các trường để đặt và lặp qua danh sách trắng hoặc chuyển mảng đầu vào qua danh sách trắng.