0

来自 php.net参考

被编码的值。可以是除资源之外的任何类型。此函数仅适用于 UTF-8 编码数据。

但是,我在一种工作正常的情况下使用这样的函数:

$result_array = $this->DatabaseObject->_pdoQuery( 'multiple', 'bookmark_model', array( $this->SessionObject->get( 'id' ) ) );
$result_string =  json_encode( $result_array );
$html_string = "<div id='bookmark_data'>" . $result_string . "</div>";
echo $html_string;

但在这种情况下,它不会:

$result_array = $this->DatabaseObject->_pdoQuery( 'multiple', 'tweet_model' );
// $tweet_object = new MarkTweet();
$result_string = json_encode( $result_array );
$html_string = "<div id='tweet_data'>" . $result_string . "</div>";
echo $html_string;

在这两种情况下,我都使用 PDO 库来查询数据库。我知道我得到了本质上应该是一个数组数组的东西......但我不知道这是否是资源......或者它是如何在内部构造的。

我可以看到的查询之间没有重大区别……但它们在这里。因为这两种情况非常相似,所以我不知道是什么导致了失败。

以下是查询

"bookmark_model" =>         "SELECT * FROM bookmarks WHERE id=? ORDER BY tag, title",

"tweet_model" =>            "SELECT * FROM tweets ORDER BY time DESC LIMIT 7",
4

1 回答 1

1

看起来您的 _pdoQuery() 函数在不同情况下返回不同类型。在尝试对其进行编码之前,您可能需要检查以确保您获得了成功的结果。

于 2012-05-30T19:31:46.750 回答