gpt4 book ai didi

php - 正确使用bind_param?

转载 作者:行者123 更新时间:2023-11-29 08:44:59 29 4
gpt4 key购买 nike

我正在为一个应用程序(学校作业)进行登录,并且我正在学习如何以正确的方式使用 mysqli 类。下面是我的应用程序中的两个方法,用于检查用户输入的用户名和密码是否正确(即存在于数据库中)。

我的问题是,这是否是使用bind_param的正确方法,或者将其用于此目的是否可能“过度”?可以/应该以其他方式完成吗?

来自 LoginModel.php

public function DoLogin($username, $password){

$query = "SELECT * FROM Users WHERE username=? AND password=?";
$stmt = $this->m_db->Prepare($query);

$stmt->bind_param("ss", $username, $password);

$ret = $this->m_db->CheckUser($stmt);

return $ret;
}

来自Database.php

public function CheckUser($stmt) {

if ($stmt->execute() == false) {
throw new \Exception($this->mysqli->error);
}
$ret = 0;

// $field1 = id, $field2 = username, $field3 = password
if ($stmt->bind_result($field1, $field2, $field3) == FALSE) {
throw new \Exception($this->mysqli->error);
}

if ($stmt->fetch()) {
return true; // Match exists in db
} else {
return false; // Match doesn't exist in db
}
}

最佳答案

不,这并不过分。 bind_param 的目的是允许 MySQLi 引擎准备命令以防止不良影响。最常见的是,它有助于防止 SQL 注入(inject)类型的攻击。你正在按照你应该的方式使用它。

关于php - 正确使用bind_param?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12728842/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com