只是想知道两个delete查询中的哪一个是首选方法
$qdel = $wpdb->query($wpdb->prepare("DELETE FROM $shopping_meta_table WHERE meta_shopping_key = \'%s\' AND wp_user_id = %d", \'product-2\', $id));
或
$qdel = $wpdb->delete($shopping_meta_table,array(\'meta_shopping_key\' => \'product-2\', \'wp_user_id\'=>$id));
最合适的回答,由SO网友:Rohil_PHPBeginner 整理而成
通过您的reputation , 看来你对wordpress很了解。
使用prepare
查询中的方法是确保我们没有处理非法操作或任何非法字符。因此,我建议您使用删除prepare
方法
除此之外,你可能知道SQL INJECTION. 发布之前wordpress 2.5, 有$wpdb->escape()
防止SQL注入,其工作是防止SQL注入攻击和阻止坏人。自WordPress 2.5以来,一个新的$wpdb函数被称为“prepare”,它的工作是防止SQL转义。
因此,在执行SQL查询之前,必须对SQL查询中的所有数据进行SQL转义,以防止SQL注入攻击。这个prepare
方法为WordPress执行此功能,它支持类似sprintf()和类似vsprintf()的语法。
Read more 关于SQL escaping.
Prepare Function.