2012-05-13 20 views
2

我的問題是關於WordPress中的$ wpdb方法。在運行這些方法之前,例如:

$wpdb->query 
$wpdb->get_results 
$wpdb->get_var ... 

是否需要轉義/過濾輸入?這是必需/優先的每種方法或只有一些?

這是足夠的,例如處理所有ilegal字符(例如,從WordPress的抄本):

$wpdb->query( 
$wpdb->prepare( 
    "DELETE FROM $wpdb->postmeta 
    WHERE post_id = '13' 
    AND meta_key = 'gargle' 
    " 
,$id, $key) 
); 

TNX

回答

3

從WordPress的抄本頁面的例子有錯誤。他們應該使用%d和%s代替'13'和'漱口':

$wpdb->query( 
$wpdb->prepare( 
    "DELETE FROM $wpdb->postmeta 
    WHERE post_id = %d 
    AND meta_key = %s 
    ", $id, $key) 
); 

但是,您應該每次檢查變量的內容類型。你需要確保類型是正確的。例如,檢查'post_id'變量的內容是一個整數。