web-dev-qa-db-fra.com

comment utiliser $ wpdb-> prepare pour mettre à jour un tableau personnalisé

En tant que Noob, je ne comprends pas beaucoup d'injections SQL, mais j'ai besoin d'être sauvegardé, donc j'ai lu que je dois utiliser wpdb-> prepare pour m'assurer que les données sont stockées correctement.

En ce moment, j'utilise la requête $ wpdb-> update (), j'ai donc besoin d'aide pour la transformer en une requête de sauvegarde avec $ wpdb-> prepare ().

$wpdb->update('custom_table',
    array(
    'option_1' => 'hello', 
    'option_2' => 2,
    'option_3' => 'world'
    ),
    array('option_name' => 'some name'),
    array('%s','d%','%s')
);
1
user759235

Lorsque vous consultez l'article du Codex sur $wpdb , vous verrez que votre utilisation actuelle est correcte. Le dernier argument

array( '%s', '%d', '%s' )

indique déjà qu'il se passe quelque chose comme sprintf/printf en arrière-plan.

La méthode $wpdb->prepare() n'est pas nécessaire pour toutes les autres méthodes. Ceux qui en ont besoin:

$wpdb->query()
$wpdb->get_var()
$wpdb->get_col()
$wpdb->get_row()
$wpdb->get_results()

et des requêtes SQL simples comme:

$sqlQuery = $wpdb->prepare( "SELECT etc.", /* list of replacements */ );

où le dernier sera probablement toujours enveloppé dans $wpdb->query() de toute façon.

1
kaiser