dortmundbvb0624 2017-04-24 17:14
浏览 57

我无法从PHP更新MongoDB中的值

I'm trying to do a php to update an user account, that I send from android:

$entityBody = file_get_contents('php://input');
$body = json_decode($entityBody,true);
foreach ($body as $value) 
{
    $username    = $value['username'];
    $oldPassword = $value['oldPassword'];
    $newPassword = $value['newPassword'];
}

I have 3 variables, the username of the account that I want to modify the password, the old password, and the new password.

I do the connection with my database.

$con = new MongoDB\Client;
if($con){
    $db = $con->users;
    // Select Collection
    $collection = $db->user;

Here, I make a filter to search the document that I want.

    $filter = array(['Username' => $username,
                     'Password' => $oldPassword
                     ]);

    $qry = new MongoDB\Driver\Query($filter);

I am using the username to find the user in the MongoBD.

    $rows = $collection->findOne($qry);

When I've found it, I use and if to see if the username and the password are correct.If it's, I'm trying to change the old password and put the new one,but it's not working.Putting var_dumps, I realized the mistake is in the update line, but I don't know what I am doing wrong in it.

    if($rows['Username']== $username && $rows['Password'] == $oldPassword)
    {
        $criteria = ['Username' => $rows['Username']];
        $newData = ['$set' => ['Password' => $newPassword]];

        $collection -> update($criteria,$newData);
        $changed = true;

         echo json_encode(array('status'=> '1','isChanged' => $changed));
    }
    else{

    $changed = false;
    echo json_encode(array('status'=> '2','isChanged' => $changed));
    }
    }

Finally, if the $con is false, I show an error message.

    else
    {
        die("Mongo DB not connected!");
    }
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 ogg dd trandata 报错
    • ¥15 高缺失率数据如何选择填充方式
    • ¥50 potsgresql15备份问题
    • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
    • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
    • ¥60 pb数据库修改与连接
    • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
    • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
    • ¥20 神经网络Sequential name=sequential, built=False
    • ¥16 Qphython 用xlrd读取excel报错