我运行游戏论坛和相关的游戏服务器。在过去的两年中,用户在论坛上注册,然后将其名称/密码传递到我的游戏服务器数据库。一旦他们完成注册,就会进行另一次调用,在游戏数据库中翻转一个标志以允许他们玩。
在某些时候,这个过程停止了工作,所有新的论坛帐户(phpbb论坛)根本就没有进入我的游戏SQL服务器。我在我的游戏服务器上打开了我的SQL监视器,并且没有使用已传递的凭据进行连接。创建新帐户时,我也没有列出任何错误。代码如下:
// Create game account
try {
$acctConnection = new PDO('mysql:dbname=DB_Redacted;host=x.x.x.x;port=33306;charset=utf8','DB_forum','PasswordHere', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$acctStmt = $acctConnection->prepare('CALL forum_link(?,?)');
$acctStmt->bindParam(1, $newname);
$acctStmt->bindParam(2, $plainpassword);
$acctStmt->execute();
$acctConnection = NULL;
} catch (PDOException $e) {
echo 'Creating game account failed';
}
forum_link是用于将值插入游戏数据库的存储过程。该帐户还设置为仅接受来自我的专用IP论坛主机的连接,IP尚未更改,并且还能够运行列出的存储过程。游戏服务器正在监听列出的端口,我甚至测试过没有运行防火墙。我对此非常陌生,因为这个过程是由另一个不再在该项目上工作的开发人员设置的,但是看起来很长时间没有失败。任何想法可能是错误的和/或我如何能够获得更强大的日志记录以了解问题可能是什么?
答案 0 :(得分:0)
这最终成为由于Java在Web服务器上损坏而导致PDO功能损坏/丢失的问题。这是由于托管问题。我通过选择要在CPANEL中使用的新(更新)java版本来重置它,重新安装PDO模块,然后我与其他SQL服务器的连接没有问题。我需要在我的PDO语句中添加额外的错误记录以将其作为问题来解决,我在其他地方通过一些webdev找到了该怎么做。