PHP操作mongoDB

当需要使用PHP来对mongoDB进行操作时,需要进行一些步骤:

PHP需要版本:5.6.28    在PHP文件下打开cmd,输入php.exe -v查看PHP版本号

需要下载并加载扩展模块:mongo 1.6.16

下载地址:http://pecl.php.net/package/mongo/1.6.16/windows

这里使用x86,支持线程安全的版本

5.6 Thread Safe (TS) x86

步骤:

    下载完毕后放在XAMPP下PHP中的ext中

    打开PHP文件夹下的php.ini

    在912行左右位置添加:extension=php_mongo.dll

    然后再PHP文件夹中打开命令行,输入php.exe -m查看是否添加了mongo.dll

    创建连接数据库的PHP文件

<?php
//初始化
header('Content-Type:application/json');
//连接mongodb的服务
$conn = new MongoClient();
//指定要链接的数据库的名称
$db = $conn->db.....;
?>

    在其他页面加载这个文件即可        require_once("./init.php");

实例:

   注:这些功能写在一个user.php中,user.php与init.php同级目录

    1、实现用户注册:

<?php
//引用init.php
require_once("../init.php");
//在该文件当中,封装和用户相关的一些方法,方便去调用
//注册
function register(){
    //要在该方法当中引用init.php所定义的变量
    //解析客户端参数
    global $db;
    @$uname = $_REQUEST['uname'];
    @$upwd = $_REQUEST['upwd'];
    //将数据写入数据库
    //1、指定要操作的集合名称
    //2、向该集合当中插入文档对象
    if($uname&&$upwd){
    $db->users->insert([
    "uname"=>$uname,
    "upwd"=>$upwd
    ]);
    echo json_encode(["ok"=>1,"msg"=>"注册成功"]);
    }else{
        echo json_encode(
        ["ok"=>0,"msg"=>"注册失败"]
        );
    }
}    
?>

    2、实现用户登录

<?php
require_once("./init.php");
//实现登陆功能
//解析客户端中的用户名和密码
//从users集合中查找,查找的条件就是当前用户名和密码,如果有返回值,登陆成功,否则:登陆失败
function login(){
    global $db;
    @$uname  = $_REQUEST['uname'];
    @$upwd = $_REQUEST['upwd'];
    if($uname&&$upwd){
            $user = $db->users->findOne(["uname"=>$uname,"upwd"=>$upwd]);
      if($user){
            //登陆成功
            echo json_encode(["ok"=>1,"msg"=>"登录成功"]);
            //登录成功将数据存储在session中,作为判断用户是否已经登录的凭证信息
            session_start();
            $_SESSION["uname"] = $user["uname"];
            $_SESSION["uid"] = $user["_id"];

      }else{
            //登陆失败
            echo json_encode(["ok"=>0,"msg"=>"登陆失败"]);
       }
    }else{
        echo json_encode(["ok"=>0,"msg"=>"请输入用户名和密码"]);
    }
}

    3、判断是否处于登录状态,如果是返回uname

//功能:检查当前是否处于登录状态
//查看session中是否有有效信息
//如果包含,返回客户端消息:
   //{ok:1,uname:'xxx'}
function isLogin(){
    session_start();
    @$uid =  $_SESSION["uid"];
    if($uid){
        //返回客户端消息
        echo json_encode(["ok"=>1,"uname"=>$_SESSION["uname"]]);
    }else{
        echo json_encode(["ok"=>0]);
    }
}

4、检查用户名是否存在:

//验证用户名是否有效
//从users集合中查找用户名是否存在
 function validName(){
    global $db;
    @$uname = $_REQUEST['uname'];
    if($uname){
        $user = $db->users->findOne(["uname"=>$uname]);
        if($user){
            echo json_encode(["ok"=>0,"msg"=>"用户名已被占用"]);
        }else{
            echo json_encode(["ok"=>1,"msg"=>"用户名可用"]);
        }
    }else{
        echo json_encode(["ok"=>0]);
    }
 }

5、退出登录

//退出登录 清除session中的信息
    function logout(){
        session_start();
        session_destroy();
        echo json_encode(["ok"=>1,"msg"=>"成功退出"]);
    }

与web前端进行交互:

首先,使用路由进行逐级调用:

    新建路由文件夹routes

在routes中新建5个.php 顺序为register.php validName.php login.php isLogin.php logout.php

内容分别为

require_once("../user.php");
register/validName/login/isLogin/logout()

新建JS,用jQuery异步加载数据即可

$.get("....../isLogin.php").then((函数名)=>{}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值