来自 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",