Wpdb get_row数据库查询查询

时间:2016-01-24 作者:Rich

这是将get\\u row与select*一起使用的正确方法吗?

$_crds = $wpdb->get_row($wpdb->prepare(" SELECT * FROM `mailers` WHERE `id` = %d", $_GET[\'caId\'] ));

$_zipcodes = $_crds->zipcodes;
$_maildate = $_crds->maildate;
这是从数据库中提取值的正确方法吗?我有很多记录在那张表中,我需要拉,所以我想在一个db拉。。。

但我的代码似乎不起作用。

-丰富的

2 个回复
最合适的回答,由SO网友:Fiaz Husyn 整理而成

要使Placehold工作,您应该使用$wpdb->查询,如:

$wpdb->query( 
  $wpdb->prepare( "
            SELECT * FROM mailer
            WHERE id = %d
        ",
        $_GET[\'caId\']
    )
);
然而,在我看来,最好的选择是简单地验证get参数,然后在$wpdb->get\\u结果中使用它,例如:

$catId = $_GET[\'caId\'];
if(is_numeric($catId)){
   $_crds = $wpdb->get_results(" SELECT * FROM mailers WHERE id = $catId");

 foreach ($_crds as $_crds) {
   $_zipcodes = $_crds->zipcodes;
   $_maildate = $_crds->maildate;
 }
}

SO网友:Rich

我知道怎么做了。。。

$_crds = $wpdb->get_results(" SELECT * FROM `mailers` WHERE `id` = %d", $_GET[\'caId\'] );

foreach ($_crds as $_crds) {
  $_zipcodes = $_crds->zipcodes;
  $_maildate = $_crds->maildate;
}
这很有效,除了%d不起作用外,我只能这样做:

$_crds = $wpdb->get_results(" SELECT * FROM `mailers` WHERE `id` = " . $_GET[\'caId\'] );
我不知道为什么placehold不起作用。疯子希望是这样,因为这是从URL,所以可以得到代码注入。。。

相关推荐

$wpdb->get_row返回什么?

由于插件中的调试和错误查找,我有一个简短的问题。$wpdb->;如果没有结果,返回get\\u row()?文件说明:(array|object|null|void) Database query result in format specified by $output or null on failure. 但当查看源代码时,它似乎返回了;null“;。。。如果您能快速提供帮助,我将不胜感激,我一直认为它会返回一个空数组,但我可能弄错了!