web-dev-qa-db-ja.com

$ wpdb-> prepareを使ってカスタムテーブルを更新する方法

私はSQLインジェクションの多くを理解していませんが、データが正しく格納されていることを確認するためにwpdb-> prepareを使用する必要があることを読んだので、保存する必要があります。

現時点では$ wpdb-> update()クエリを使用しているので、$ 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

$wpdbに関するコーデックスの記事 を見ると、現在の使い方が正しいことがわかります。最後の議論

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

バックグラウンドでsprintf/printfのような何かが起こっていることをすでに示しています。

$wpdb->prepare()メソッドは他のすべてのメソッドに必要なわけではありません。それを必要とするもの:

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

そして次のようなプレーンなSQLクエリ

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

とにかく最後はおそらく$wpdb->query()で囲まれているはずです。

1
kaiser