php - 新的 PDO 请求总是超时
问题描述
我正在尝试构建一个脚本 - login.php
- 它检查输入的用户名是否存在于数据库中,然后比较输入的密码和数据库中的密码是否匹配,并且应该在网页上打印这些操作的结果(现在) .
首先是登录页面:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once("scripts/config.php");
require_once("scripts/helperClass.php");
$username = strip_tags($_POST["username"]);
$password = strip_tags($_POST["password"]);
echo helperClass::checkCredentials($username, $password);
?>
现在是辅助类:(或至少是相关函数):
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
class helperClass {
public static function checkCredentials($UserName, $Password) {
try {
$pdo = new PDO("mysql:host=".mydbhost.";dbname=".mydbname, myuname, mydbpw);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $ex) {
throw(new PDOException($ex->getMessage(), (int) $ex->getCode()));
}
$statement = $pdo->prepare("SELECT UserId, Password FROM ChatUsers WHERE (? = UserName) OR (? = E_Mail)");
$statement->execute(array($UserName, $UserName));
$foundUser = $statement->fetch(PDO::FETCH_ASSOC);
if($foundUser) {
$pwCorrect = $foundUser["Password"] == $Password;
if(pwCorrect) {
$statement = $pdo->prepare("UPDATE ChatUsers SET LoggedIn = true WHERE ? = UserId");
$statement->execute(array($foundUser["UserId"]));
return true;
}
else {
return false;
}
}
else {
return false;
}
}
}
?>
在config.php
我定义实际的连接数据。它在本地编译得很好,但最终PDOException
由于请求超时而崩溃。(我的 PHP 编辑器支持 pDO,因此即使本地连接到外部数据库也应该可以工作)。在线我只是得到一个白屏死机。
我现在实现了错误显示,并且可以看到它正在工作,因为我收到了以前沉默的额外通知。从登录页面加载的时间来看,执行了 SQL 查询,但是页面仍然是空白的,没有错误,没有返回。还有什么我忽略的吗?
解决方案
推荐阅读
- jquery - 选择多个下拉菜单时如何启动功能
- spring-boot - 如何使用 oauth2 范围测试 Spring PreAuthorize
- angular - 加载子组件选择器时加载父组件(没有层次结构 URL)?
- javascript - Angular 7 为什么将正文转换为 JSON 字符串和对象
- javascript - 子菜单不与侧父元素重叠
- c# - 搜索 IP 范围 - 算法/数据结构?
- python-3.x - 有没有办法让这个列表排序器更短?
- vue.js - 如何在进行 vue-cli 单元测试时设置超时
- karate - karate - 我们可以从空手道的 excel 文件中获取数据吗?如果是,那么我们可以在场景大纲的示例中设置获取数据吗?
- java - 使用 RequestMethod.GET 刷新页面时,数据会重复从数据库到 JSP