Quando devo usar $ wpdb-> prepare, se houver?
Tenho dificuldade em descobrir se devo usar$wpdb->prepare
nas minhas consultas de banco de dados no WordPress para evitar coisas como injeção de SQL.
oCodex $ wpdb mostra alguns exemplos usando a função $ wpdb-> prepare e outros exemplos que não a utilizam.
Também emesta resposta no StackOverflow, alguém mencionou que uma função como$wpdb->insert
tem o mesmo nível de segurança que o uso$wpdb->prepare
. Mas e os outros$wpdb
funções como$wpdb->get_var
ou$wpdb->query
?
Quando devo usar$wpdb->prepare
, se houver?
Alguns dos meus (simplificados)$wpdb
o uso de classe e função se parece com isso:
Exemplo 1: $wpdb->insert
$wpdb->insert(
'special_posts',
array(
'title' => $title,
'selftext_html' => $selftext_html,
'selftext' => $selftext,
),
array(
'%s',
'%s',
'%s',
)
);
Exemplo 2: $wpdb->get_results
$wpdb->get_results("SELECT * FROM special_posts WHERE selftext_html = '$value'");
Exemplo 3: $wpdb->get_var
$wpdb->get_var("SELECT title FROM special_posts ORDER BY id DESC LIMIT 1");
Exemplo 4: $wpdb->query
$wpdb->query('TRUNCATE TABLE special_posts');