过去一个小时我一直在盯着它看,似乎无法理解为什么它不起作用。下面的代码从表中获取信息,该表位于数组中(代码下方的示例)。
$post_id = 228;
$content_post = get_post($post_id);
$content = $content_post->post_content;
global $wpdb;
$results =$wpdb->get_results("SELECT * FROM wp_article_hyperlinks");
foreach ($results as $result){
// $url = $result["url"];
// $title = $result["title"];
echo '<pre>';
var_dump($result["title"]);
echo '</pre>';
}
}
我正在尝试获取标题值,但以上内容仅会转储空白屏幕。当我使用键和值运行foreach
时,得到的全部是使用键时的int
或NULL
。
object(stdClass)#717 (4) {
["ID"]=>
string(1) "1"
["time"]=>
string(19) "2018-08-22 12:30:29"
["title"]=>
string(15) "gluteus maximus"
["url"]=>
string(86) "/wp-content/blahblah"
}
我已将其与SO和W3Schools上的其他代码/帖子进行了比较,我很确定我所缺少的东西都是非常基本的,但我看不到。
答案 0 :(得分:4)
这是一个stdClass对象,您尝试像访问数组一样尝试访问它。
尝试像$result->title
一样访问它。
如果对数组格式至关重要,则可以通过以下方式将stdClass转换为数组
$data=json_decode(json_encode($result,true),true);
这将为您提供一系列数据,您可以使用已知的常规方法访问数据。
答案 1 :(得分:2)
您可以看到var_dump
函数显示$result
是stdClass()
对象。
这意味着,如果要获取该对象的值,则需要使用$result->title
而不是$result['title']
您还可以查看WordPress文档的wpdb::get_results()主题。
您会发现get_results()
方法具有第二个($output
)参数,该参数显示了结果将如何返回给您。
例如:
$results = $wpdb->get_results("SELECT * FROM wp_article_hyperlinks", ARRAY_A);
foreach ($results as $result) {
// $result['title'] - You can get title value from an associative array
}
$results = $wpdb->get_results("SELECT * FROM wp_article_hyperlinks", ARRAY_N);
foreach ($results as $result) {
// $result[2] - You can get title value from an numeric array
}
答案 2 :(得分:-1)
尝试下面的代码来解决:
$post_id = 228;
$content_post = get_post($post_id);
$content = $content_post->post_content;
global $wpdb;
$results =$wpdb->get_results("SELECT * FROM wp_article_hyperlinks");
foreach ($results as $result){
// $url = $result["url"];
// $title = $result["title"];
echo '<pre>';
var_dump($result->title);
echo '</pre>';
}