Ошибка: объект класса stdClass не может быть преобразован в строку - implode () - php - PullRequest
1 голос
/ 11 октября 2011

Может кто-нибудь помочь мне понять, почему я получаю ошибку:

Объект класса stdClass не может быть преобразован в строку в ... (ошибка указывает на строку с implode (), см. Ниже)

когда я запускаю следующую функцию?

  function selectFullArticle () {

    global $wpdb;

  $id=get_the_ID();


      $webPageArticle = $wpdb->get_results( "SELECT post_content_long FROM $wpdb->posts WHERE ID=$id" );

 $webPageArticle= implode(" ",$webPageArticle);
 return $webPageArticle;

}

Моя цель - вернуть строку ине массив.

Может быть, массив, возвращаемый из SELECT, должен обрабатываться по-другому?

Заранее спасибо,

Марина


Спасибо за ваши ответы.Я пытаюсь отобразить веб-страницу, которую я скачал из Интернета и сохранил в базе данных WordPress, а не в сообщении.

Оба $ webPageArticle = $ wpdb-> get_results ("ВЫБРАТЬ post_content_long FROM $ wpdb->сообщения WHERE ID = $ id ", ARRAY_N);и $ webPageArticle = $ wpdb-> get_results ("SELECT post_content_long FROM $ wpdb-> posts WHERE ID = $ id", ARRAY_A);

работают хорошо и implode () больше не жалуется.Тем не менее, я не получаю настоящую строку, потому что выражение "echo $ webPageArticle;"визуализирует слово «Массив» на экране.T

как получилось?

марина

Ответы [ 2 ]

2 голосов
/ 11 октября 2011

Как указано в Кодекс , вы можете передать дополнительный второй параметр get_result (), чтобы он мог возвращать массив вместо объекта

 <?php $wpdb->get_results('query',OBJECT_K); ?> 

возвращает ассоциативный массивзатем можно манипулировать.

Ссылка:

OBJECT - result will be output as a numerically indexed array of row objects.
OBJECT_K - result will be output as an associative array of row objects, using first column's values as keys (duplicates will be discarded).
ARRAY_A - result will be output as an numerically indexed array of associative arrays, using column names as keys.
ARRAY_N - result will be output as a numerically indexed array of numerically indexed arrays
0 голосов
/ 11 октября 2011
function selectFullArticle () {
    $id=get_the_ID();
    $webPageArticle = get_post($id, ARRAY_A);
    $webPageArticle= implode(" ", $webPageArticle);
    return $webPageArticle;
}

Если я понял это правильно и вам нужен только контент публикации, используйте это:

function selectFullArticle () {
    $id=get_the_ID();
    $webPageArticle = get_post($id);
    return $webPageArticle->post_content;
}
...