如何使用 mysql 在 android 中更改密码(注册和登录工作正常,但更改密码时出现问题)
Posted
技术标签:
【中文标题】如何使用 mysql 在 android 中更改密码(注册和登录工作正常,但更改密码时出现问题)【英文标题】:how to change password in android using mysql (Registration and Login is perfectly working fine but issues in change password) 【发布时间】:2018-07-13 17:48:55 【问题描述】:class DbOperations
private $con;
function __construct()
require_once dirname(__FILE__).'/db_connected.php';
$db = new DbConnect();
$this->con = $db->connect();
public function changePassword($pass)
$password = md5($pass);
$stm = $this->con->prepare("UPDATE `student` SET `password` = ?
WHERE `username` = ?);");
$stm->bind_param("s",$password);
$stm->execute();
if ($stm)
return true;
else
return false;
现在这是我想在 android studio 中使用 php 脚本调用更改密码的函数。
所有其他文件都没有错,主要问题在于这个脚本名称DbOperations
函数changePassword
这是修改密码脚本userChangePassword.php
<?php
require_once '../include/db_operations.php';
$response = array();
if ($_SERVER['REQUEST_METHOD']=='POST')
if (isset($_POST['password']))
$db = new DbOperations();
if ($db->changePassword($_POST['password']))
$response['error'] = false;
$response['message'] = "Change Password Successfully";
else
$response['error'] = true;
$response['message'] = "Password not changed";
else
$response['error'] = true;
$response['message'] = "Fill all the feilds";
else
$response['error'] = true;
$response['message'] = "Invalid Request";
echo json_encode($response);
错误是:
致命错误:在第 69 行对 C:\xampp\htdocs\Android\include\db_operations.php 中的非对象调用成员函数 bind_param()
【问题讨论】:
【参考方案1】:您的错误似乎表明 $stm 设置不正确。
$stm = $this->con->prepare("UPDATE `student` SET `password` = ?
WHERE `username` = ?);");
没有返回一个有效的对象。 __construct 函数中的所有变量都有效吗?
编辑:duskwuff 是对的,WHERE username = ?)
中的右括号不正确
【讨论】:
是的,所有变量都是有效的,因为我在数据库中注册用户时使用它,所以这意味着所有变量都工作正常【参考方案2】:$stm = $this->con->prepare("UPDATE `student` SET `password` = ?
WHERE `username` = ?);");
^
此 SQL 语句无效——我标记的右括号(在`username` = ?
之后)在任何地方都没有匹配的左括号。这会导致prepare
调用失败。
$stm->bind_param("s",$password);
$stm->execute();
您还没有将值绑定到第二个参数,对应于username
。该函数甚至 userChangePassword.php
脚本也没有用户名参数——它应该如何知道要更新哪个用户的密码?
【讨论】:
以上是关于如何使用 mysql 在 android 中更改密码(注册和登录工作正常,但更改密码时出现问题)的主要内容,如果未能解决你的问题,请参考以下文章