繁体   English   中英

用PHP显示MongoDB收集结果

[英]Displaying MongoDB collection result with PHP

我正在看一本书:“ PHP和MongoDB Web开发”

他们在这里创建了dbconnection.php脚本:

<?php

class DBConnection
{
    const HOST   = 'localhost';
    const PORT   = 27017;
    const DBNAME = 'myblogsite';

    private static $instance;

    public $connection;    
    public $database;

    private function __construct()
    {
        $connectionString = sprintf('mongodb://%s:%d', DBConnection::HOST, DBConnection::PORT);

        try {

            $this->connection = new Mongo($connectionString);
            $this->database = $this->connection->selectDB(DBConnection::DBNAME);

        } catch (MongoConnectionException $e) {
            throw $e;
        }
    }

    static public function instantiate()
    {
        if (!isset(self::$instance)) {
            $class = __CLASS__;
            self::$instance = new $class;
        }

        return self::$instance;
    }

    public function getCollection($name)
    {
        return $this->database->selectCollection($name);
    }
}

我想使用此脚本通过名为blogs.php的文件列出博客文章:

<?php

require_once('dbconnection.php');

class Blogs
{
    const COLLECTION = 'articles';

    private $_mongo;
    private $_collection;
    private $_blogs;

    public function __construct()
    {
        $this->_mongo = DBConnection::instantiate();
        $this->_collection = $this->_mongo->getCollection(Blogs::COLLECTION);
    }


}

$blogs = new Blogs();


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <link rel="stylesheet" href="style.css" /> 
    <title>My Blog Site</title>
    </head>

          <body>
              <div id="contentarea">
                  <div id="innercontentarea">
                      <h1>My Blogs</h1>

                      <?php while ($blogs->hasNext()):
                        $article = $blogs->getNext(); ?>
                        <h2><?php echo $article['title']; ?></h2>
                        <p><?php echo substr($article['content'], 0, 200).'...'; ?></p>
                        <a href="blog.php?id=<?php echo $article['_id']; ?>">Read more</a>
                      <?php endwhile; ?>
                  </div>
              </div>
          </body>
</html>

我不确定如何从这里继续。

您可以参考Blogs集合; 下一步是对其进行查询:

public function __construct()
{
    $this->_mongo = DBConnection::instantiate();
    $this->_collection = $this->_mongo->getCollection(Blogs::COLLECTION);
    $this->_blogs = $this->_collection->find();
}

这将为您提供结果集的参考,您可以对其进行迭代并获取单个博客文档。 然后,您必须弄清楚如何使php / html可以访问这些文章。

(使用它作为可视参考http://devzone.zend.com/1730/getting-started-with-mongodb-and-php/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM