Tôi đang sử dụng phương thức Drupal 7 db_insert , để chèn dữ liệu vào bảng tùy chỉnh trong cơ sở dữ liệu Drupal. Tôi đã đọc rằng đây là cách ưa thích, tuy nhiên tôi đã xem qua mã và tài liệu và tôi không thể thấy bất cứ nơi nào phân tích các giá trị hoặc nói với tôi rằng các giá trị này là an toàn.
Một số giá trị đến từ người dùng, vì vậy tôi cần kiểm tra chống lại các cuộc tấn công SQL Injection.
Đây là ví dụ tôi đã đọc, trong đó Drupal 6 phân tích các giá trị, còn phiên bản drupal 7 thì không.
<?php
// Drupal 6 version
db_query('INSERT INTO {vchess_games}
(gid, timestamps, white, black, state, board_white, board_black) ' . "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')",
$gid, $timestamps, $game['white'], $game['black'], $state, $board_white, $board_black);
// Drupal 7 version
db_insert('vchess_games')
->fields(array(
'gid' => $gid,
'timestamps' => $timestamps,
'white' => $game['white'],
'black' => $game['black'],
'state' => $state,
'board_white' => $board_white,
'board_black' => $board_black
))
->execute();
?>