Korzystam z metody Drupal 7 db_insert , aby wstawić dane do niestandardowej tabeli w bazie danych Drupal. Przeczytałem, że jest to preferowany sposób, jednak przeszedłem przez kod i doco i nie widzę nigdzie, kto analizuje wartości lub mówi mi, że te wartości są bezpieczne.
Niektóre wartości pochodzą od użytkownika, więc muszę sprawdzić przed atakami SQL Injection.
To jest przykład, który czytałem, gdzie Drupal 6 analizuje wartości, a wersja Drupal 7 tego nie robi.
<?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();
?>