0

データベース内のパスワードを変更する必要がある関数を作成しようとしています。私の問題は、SQLコードが間違っている可能性があることです。

このエラーメッセージが表示されます:クラスmysqliのオブジェクトはCで文字列に変換を要求できませんでした:\ WAMP \ www \ Connection \ DB_Connection.php on line 32

db_connectionで間違っていると表示されますが、ハンドラーで何か間違ったことをしたと信じています

ハンドラ:

    public function ChangePassword($password,$username){
    var_dump($password,$username);
    $DBConnection = new DBConnection();
    $DBConnection -> Connect();
    $sql= "UPDATE user SET password=? where m_username=?";
    $stmt = $DBConnection -> prepare($sql);
    $stmt -> bind_param("ss",$m_password, $m_username);
    if ($stmt === FALSE) {
        //echoBr("prepare of '$sql' failed " .  $DBConnection -> error);
        return false;
    }
    $stmt -> execute();
    // ger resultet.
    $result = $stmt -> get_result();
    $stmt -> close();
    return false;

}

<?php
require_once ("settings.php");
require_once("Log.php");
class DBConnection {

private $m_mysqli = NULL;
public function Connect() {
    $log =  new Log(); 
    $password = "";
    $this -> m_mysqli = new mysqli(settings::DBhost, settings::DBroot,   

            settings::DBPassword, settings::DBdatabase);

    //utf 8
    $this -> m_mysqli -> set_charset("utf8");

    //kollar kopplingen till  databasen.
    if ($this -> m_mysqli -> connect_errno) {
        $log->LogMessage("Connect failed: $this->m_mysqli->connect_error");
        return false;
    } else {


        $log->LogMessage("har kontakt med databasen");

    }
    return true;
}

public function Prepare($sql) {
    $log =  new Log();
    $stmt = $this -> m_mysqli -> prepare($sql);
    if ($stmt === FALSE) {
        $log->LogMessage("Connect failed: $this->m_mysqli->connect_error");
        return false;
    }
    return $stmt;
}

public function Close() {
    $log =  new Log();
    $log->LogMessage("Close Connection");
    $this -> m_mysqli -> close();
}

public function error() {
    $log =  new Log();
    $wrong = "funktionen som heter error som ligger i db_c";
    $log->LogMessage("Close Connection");

    return $wrong;
}

}

4

0 に答える 0