【发布时间】:2019-10-31 06:31:34
【问题描述】:
我正在检查任一表中是否存在用户名和密码组合?
我在 PDO 中使用绑定参数执行此操作。页面执行时显示错误:currently unable to handle this request.
这是我的代码:
$stmtus = $conn->prepare("Select
case
when exists (
Select 1 from School_Profile
where aes_decrypt(SchoolEmail, 'SALT') = :Username and password = :Password
) then 'Admin'
when exists (
Select 1 from NonAdminUsers
where aes_decrypt(Nuser, 'SALT') = :Username and Npassword = :Password
) then 'Non Admin'
else 'Unknown'
end result");
$stmtus->bindParam(':Username', $username);
$stmtus->bindParam(':Password', $password);
$username = htmlspecialchars($_POST['username'], ENT_QUOTES, 'UTF-8');
$password = htmlspecialchars($_POST['password'], ENT_QUOTES, 'UTF-8');
$stmtus -> execute();
我的错误日志显示:
PHP Fatal error: Uncaught Error: Call to a member function prepare() on null in
【问题讨论】:
-
不要对进入数据库的数据使用
htmlspecialchars。这会在以后给你带来麻烦。仅在 HTML 上下文中输出时使用htmlspecialchars。 -
@Dharman。谢谢你的建议。我会改变它。你能告诉我我可能会遇到什么类型的问题吗?
-
如果您想将数据输出到其他介质怎么办?如果你想搜索数据库中的数据怎么办?如果您想修改保存的信息怎么办。如果您的数据已针对 HTML 进行了预格式化,则不能这样做
-
您能告诉我们您是如何打开 PDO 连接的吗?