来自 php.net reference :
The value being encoded. Can be any type except a resource. This function only works with UTF-8 encoded data.
但是,我在一种情况下使用了这样的函数,效果很好:
$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",
最佳答案
看起来您的 _pdoQuery() 函数在不同情况下返回不同类型。在尝试对其进行编码之前,您可能需要检查以确保获得成功的结果。
关于php - json_encode 想要输入什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10822881/