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((函數名)=>{}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章