首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从带有wpdb的页面中选择自定义元(WPAlchemy

从带有wpdb的页面中选择自定义元(WPAlchemy
EN

Stack Overflow用户
提问于 2013-02-10 21:37:33
回答 1查看 302关注 0票数 0

我已经阅读了一些文档和其他人关于我的wpdb问题的类似问题,但我看到了非常不同的答案,所以我有点困惑。

我想要做的是从(最终)大约250页的Wordpress中获取定制的元数据。wpdb请求将是header.php格式的,代码必须构建一个数组,该数组将用作Google Map的输入。自定义元字段被称为_ytF_f_name、_ytF_f_lat和_ytF_f_lng (不要问我为什么:-)。

因此,最终的输出应该是:[name1,lat1,lng1], [name2,lat2,lng2],等。

我为Wordpress使用了一个定制表,它的前缀是yt_ (在wp-config.php中定义)。自定义元是使用WPAlchemy构建的。我已经检查了数据库,元数据就在那里(在postmeta表中)。

在组合了几个东西之后,我现在得到的是:

代码语言:javascript
复制
<?php
global $wpdb;
$querystr = "SELECT ".$wpdb->prefix."postmeta._ytF_f_name, ".$wpdb->prefix."postmeta._ytF_f_lat, ".$wpdb->prefix."postmeta._ytF_f_lng FROM ".$wpdb->prefix."postmeta WHERE post_type='page'";
$vars = $wpdb->get_results($querystr);
foreach ($vars as $var) {
echo '[' . $var->_ytF_f_name . ',' . $var->_ytF_f_lat . ',' . $var->_ytF_f_lat . '],';
}
?>

输出为空,那么我在这里遗漏了什么?

与此相关的另一个问题是:我读到了一些关于“prepare”以防止sql注入的内容。

正确使用prepare类来更改

代码语言:javascript
复制
$vars = $wpdb->get_results($querystr);

进入:

代码语言:javascript
复制
$vars = $wpdb->get_results($wpdb->prepare($querystr));
EN

回答 1

Stack Overflow用户

发布于 2013-02-10 21:44:41

关于你的问题,我没有看到错误,所以在你的查询(文档here)之前,用$wpdb->show_errors();验证你是否有SQL错误。

prepare方法可以防止SQL注入。正如doc所说,它的工作原理如下:

代码语言:javascript
复制
 $wpdb->query(
    $wpdb->prepare(
       "INSERT INTO ___
       ( attr1, attr2 )
       VALUES ( %s, %d )",
       $valueOfAttr1,
       $valueOfAttr2
    )
 );

当然,您必须根据需要更改类型和值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14798307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档