zoukankan      html  css  js  c++  java
  • MongoDB学习系列(2)--使用PHP访问MongoDB

    第一部分:介绍

    在Windows上安装最新MongoDB步骤非常的简单,这里不做介绍。但是如果你安装的时候没有将MongoDB作为服务运行,每次你都要使用cmd切换到指定的目录下,然后在cmd中启动MongoDB服务,然后再使用另外一个cmd运行Javascript Shell。所以我自己创建了2个.bat文件来简化这个操作。

    clip_image001

    Run_MongoDB_Service.bat代码为:

    d:

    cd d:mongodbin

    mongod --dbpath d:mongodbdata

    Run_MongoDB.bat代码为:

    d:

    cd d:mongodbin

    mongo

    我们使用Javascript Shell操作都在Run_MongoDB的命令框中进行。

    第二部分:安装PHP Driver for MongoDB

    安装步骤:

    步骤1.进入网站http://docs.mongodb.org/ecosystem/drivers/php/ 根据步骤和提示下载最新PHP Driver。很多博客和帖子都介绍,都是把“php_mongo.dll”复制到php extension的目录中。其实下载文件如下图所示,不仔细的同学就要迷糊了,我只要一个dll,怎么给我下载了这么多文件,而且我也不知道选择哪个?

    clip_image002

    步骤2:我先将php_mongo-1.4.2-5.4-vc9.dll复制到php安装目录的ext中,5.4表明是我安装的PHP版本是5.4。所以大家要根据自己的安装类型选择正确的dll。nts:not thread safe。具体情况我也不明白,我安装php时候下载的是线程安全类型,所以复制就不要复制有nts结尾的dll。另外x86_64是说明安装MongoDB的版本支持64位。我安装的是32位,所以没有选择它。

    步骤3:然后在php.ini添加了一行代码,引入php_mongo类库。

    extension=php_mongo-1.4.2-5.4-vc9.dll

    MongoDB for PHP Driver下载地址是存放在aws中s3上,访问速度还不错。

    https://s3.amazonaws.com/drivers.mongodb.org/php/index.html

    步骤4:检验php driver for MongoDB是否成功,我们只要新建一个测试页面。输入代码

    <?php

    echo phpinfo();

    ?>

    如果页面出现下面结果,表明安装成功。

    clip_image003

    第三部分:使用PHP连接MongoDB示例程序

    初学MongoDB的人都习惯使用JavaScript Shell来操作MongoDB。通俗易懂,是入门学习MongoDB最佳的方法。下面演示使用PHP连接MongoDB,然后往数据库里面插入一条数据。代码如下:

    <?php
        /*echo phpinfo();*/
        $action=(!empty($_POST['btn_submit'])&&($_POST['btn_submit']==='Save'))?
        "save_article":
        "show_form";
        switch($action){
            case "save_article":
            try{
            $connection=new Mongo();
            //选择数据库
            $database=$connection->selectDB("myblogsite");
            //选择集合
            $collection=$database->selectCollection("articles");
            
            $article=array(
                'title'=>$_POST['title'],
                'content'=>$_POST['content'],
                'saved_at'=>new MongoDate()
            );
            //向集合插入记录
            $collection->insert($article);
            }catch(MongoConnectionException $e){
                die("Failed to connect the MongoDB" .$e->getMessage());
            }
            break;
            case "show_form":
            default:
            break;
        }
        
    ?>
    <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>PHP Connect the MongoDB Demo</title>
        </head>
        <body>
            <?php if($action==='show_form'): ?>
            <!--显示提交表单-->
            <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
                
                <div>
                <label for="title">Ttile:</label>
                <input type="text" name="title" id="title"/>
                </div>
                <div>
                    <label for="content">Content:</label>
                    <textarea name="content" id="content" cols="70" rows="10"></textarea>
                </div>
                <div>
                    <input type="submit" value="Save" name="btn_submit" id="btn_submit"/>
                </div>
            </form>
            <?php else: ?>
            <!--显示提交成功内容-->
            <div>
                Article saved in MongoDB ._id:<?php echo $article['_id']; ?><br/>
                Blog title:<span><?php echo $article['title'];?></span>
                        <a href="test.php">Write another blog?</a>
                    </div>
            <?php endif; ?>
        </body>
    </html>
    

    1.编辑界面

    clip_image004

    2.提交成功之后界面

    clip_image005

    最后我们可以使用JavaScript Shell查看刚插入成功的记录。截图如下:

    clip_image006

  • 相关阅读:
    cocos2dx 3.x(获取当前系统时间)
    cocos2dx 3.x(加载cocostudio进度条)
    cocos2dx 3.x(Button传统按钮)
    cocos2dx 3.x以上(Sprite精灵类的相关属性与创建)
    cocos2dx 3.x版本搭建Mac环境工程(创建一个新的C++工程)百分百可行
    iOS
    iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)
    iOS -Swift 3.0 -String(字符串常规用法)
    iOS -Swift 3.0 -UIButton属性大全
    iOS -Swift 3.0 -UILabel属性大全
  • 原文地址:https://www.cnblogs.com/liminjun88/p/3251406.html
Copyright © 2011-2022 走看看