问题描述
我是 SQL 的新手,我想知道如果我需要使用 wpdb->prepare
对我创建的表进行以下查询
global $wpdb;
$tablename = $wpdb->prefix . "my_custom_table";
$sql = "SELECT * FROM " . $tablename . " ORDER BY date_created DESC";
$resulst = $wpdb->get_results( $sql , ARRAY_A );
我需要使用 prepare
吗?我该怎么办?
干杯
最佳解决方案
最好的做法是始终使用 prepare
,但主要用于防止 SQL 注入攻击,并且由于没有用户/访问者的输入或者不能影响查询,那么这不是您当前的示例中的问题。
但是就像我之前说过的最佳实践一样,使用它,一旦你开始使用它,你永远不会停止,所以在你的例子中,你可以这样使用它:
global $wpdb;
$tablename = $wpdb->prefix . "my_custom_table";
$sql = $wpdb->prepare( "SELECT * FROM %s ORDER BY date_created DESC",$tablename );
$results = $wpdb->get_results( $sql , ARRAY_A );
阅读更多关于如何使用它到 codex
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。