php - Wordpress SQL查询不同的结果

标签 php mysql wordpress

我添加了自定义 Visual Composer 元素并希望输出查询结果。但是,当我输出此查询 (1) 时,它会给出其他结果,然后当我输出此查询 (2) 时。

// declared vars
global $wpdb;
$nn = '{{ post_data:ID }}';
$nn1 = (string)$nn;

 1)   $results2 = $GLOBALS['wpdb']->get_results( "SELECT guid FROM wp_posts WHERE post_parent = 526 AND guid like '%pdf'", OBJECT );
 2)  $results2 = $GLOBALS['wpdb']->get_results( "SELECT guid FROM wp_posts WHERE post_parent = ".$nn1." AND guid like '%pdf'", OBJECT );

当我输出 526 字符串(查询 1)时,它给出了正确的结果,但是我希望输出与 var 一起,因为每个帖子都有其唯一的 ID。

我还尝试将 var 放入字符串中,这样它就不会被视为 POST_ID

$nn = '{{ post_data:ID }}'; 
$nn1 = (string)$nn;

对失败的地方有什么想法吗?

我在此期间尝试过的:

$nn1 = (string)$nn;
$nn2 = strval($nn);
$nn3 = settype($nn, "string");

$results1 = $GLOBALS['wpdb']->get_results( "SELECT guid FROM wp_posts WHERE post_parent = ".$nn1." AND guid like '%pdf'", OBJECT );
$results2 = $GLOBALS['wpdb']->get_results( "SELECT guid FROM wp_posts WHERE post_parent = ".$nn2." AND guid like '%pdf'", OBJECT );
$results3 = $GLOBALS['wpdb']->get_results( "SELECT guid FROM wp_posts WHERE post_parent = ".$nn3." AND guid like '%pdf'", OBJECT );
$results4 = $GLOBALS['wpdb']->get_results( "SELECT guid FROM wp_posts WHERE post_parent = %d AND guid like '%pdf'", $nn3, OBJECT );

以上所有都返回一个空字符串,这意味着 var 仍然有问题

当我回显整个字符串时,它返回正确的 mysql 查询:

echo ("SELECT guid FROM wp_posts WHERE post_parent = ".$nn."");
//output
SELECT guid FROM wp_posts WHERE post_parent = 526;

当我执行该查询时,它为我提供了正确的解决方案:

$results6 = $GLOBALS['wpdb']->get_results( "SELECT guid FROM wp_posts WHERE post_parent = 526", OBJECT );
// output
[6]=>object(stdClass)#8030 (1) {
["guid"]=>
string(69) "http://blabla.pdf"}

问候

最佳答案

您的所有测试似乎都不包含您显示有效的查询:

$GLOBALS['wpdb']->get_results(
    "SELECT guid FROM wp_posts WHERE post_parent = $nn", 
    OBJECT 
);

无需进行任何类型转换,尤其是字符串。 $nn 应该包含 int 526

完全披露:我不是 WP 开发人员,我不知道你是如何从 '{{ post_data:ID }}'256 的,还有 string(18) "526" 对我来说似乎是一个非常奇怪的输出。 (groetjes aan de daddykaters!)

关于php - Wordpress SQL查询不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41427896/

相关文章:

PHP fatal error : Class 'X' not found

php - 如何找到特定 HH :MM time given a UTC offset in PHP? 的 UNIX 时间戳

php - HipHop PHP 将其转换为 C++ 后,关联数组是什么样子的?

php - Laravel 查询构建器返回空结果集

php - 在 WordPress 中比较散列密码与 PHP

php - 通过 1 个按钮显示多个结果

mysql - 如何创建具有重复列的 View 并将它们合并?

java - 检查 java.util.date 和 MySql 时间戳是否属于同一天

javascript - 在帖子的网格循环之间插入 Javascript (Adsense)?

php - 如何在php中显示序列化的SQL数据?