• PHP操作MongoDB数据库具体样例介绍(增、删、改、查) (六)


    PHP操作mongodb:

    PHP 要操作mongodb须要打模块
    官网能够下载:http://pecl.php.net/package/mongo 下载

    mongodb设置成用户授权的启动方式

    php手冊没有些用户授权方式登陆的方法:
    conn.php
    <?

    php
    $conn = new Mongo("mongodb://user1:123456@localhost:27017/test"); //用户授权链接mongodb test数据库
    $db = $conn->test;
    ?>

    find.php
    <?php
    include "conn.php";
    $c1 = $db->c1;    //操作c1集合

    //因为php里面不能直接用json
    //db.c1.find({name:"user1"});   不能这么玩
    //{name:"user1"} == array("name"=>"user1")   用这样的形式
    //[1,2] == array(1,2);
    //{} == array()

    $arr=array();
    $rst = $c1->find($arr);
    foreach($rst as $val){
    echo "<pre>";
    print_r($val['name']);  //取id的话  得"_id"
    }


    样例2:指定值查询
    $arr = array("name"=>"user1");  //查询nam=user1的
    $rst = $c1->find($arr);
    foreach($rst as $val){
    echo "<pre>";
    $fis = $val['_id'];
    print_r($val);  
    echo "<a href='user.php?

    fid={$fid}'></a>";   //你会发现fid传到user.php的时候变成字符串了。怎么解决?
    //user.php   依据_id查mongodb相应的数据
    <?php
    include "conn.php";
    $c1 = $db->c1;
    $oid= new MongoId($_GET['fid']); 用这个转一下
    var_dump($oid);  //还是Object,不转的话就是string类型

    $arr = array("_id"=>"$oid");  
    $rst = $c1->find($arr);
    foreach($rst as $val){
    echo "<pre>";
    print_r($val); 
    }
    ?>
    }


    样例3:添加
    include "conn.php";
    $c1 = $db->c1;
    //db.c1.insert({"name"=>"user3",age:30,"sex"=>"nan"});
    $arr = array("name"=>"user3","age"=>30,"sex"=>"nan");
    if($c1->insert($arr))
    echo '成功';
    else
    echo '失败';




    样例4:删
    include "conn.php";
    $c1 = $db->c1;
    //db.c1.remove({"name"=>"user2"});
    $arr = array("name"=>"user2");
    if($c1->remove($arr))
    echo '删除成功';
    else
    echo '删除失败';




    样例4:改
    include "conn.php";
    $c1 = $db->c1;
    //db.c1.update({"name"=>"user2"},{$set:{age:20,sex:"nan"}}); 添加字段
    $sarr = array("name"=>"user2");
    $darr = array('$set'=>array('sex'=>'nan','age'=>24));
    $opts = array('upsert'=>0,'multiple'=>1);
    if($c1->update($sarr,$darr,$opts))  //php里面的update仅仅能传3个參数
    echo '更改成功';
    else
    echo '更改失败';

    //关闭
    $conn->close();
    ?

    >



  • 相关阅读:
    Java锁到底锁的到底是哪个对象?什么是锁对象
    什么是正向代理,什么是反向代理
    到底什么是线程安全
    为什么要使用接口,直接写是实现类不行吗
    Nginx配置学习(一)
    Zookeeper集群节点数量为什么要是奇数个?
    Redis 5 单实例数据迁移到Cluster
    Centos8安装Nginx1.18.0
    vmware workstation15 桥接模式互ping不通,虚机可以连通局域网其他机器解决方法
    MongoDB double类型保留2位小数
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7286627.html
Copyright © 2020-2023  润新知