我已经花了大半天的时间在一个班级里建立一个pdo连接。我的问题是,一旦我试图击中 new PDO(...)
我一无所获,一无所获。无论我有之后,将永远不会运行,但我的控制台仍将运行等待输入。我试过在一些地方连接,包括“driver”文件,在这里,它在我运行 new PDO(...)
示例化。以下是我的数据库类的一部分:
namespace App\Database;
class MySQL
{
private $Host;
private $DBName;
private $DBTable;
private $DBUser;
private $DBPassword;
private $DBPort;
private $PDO;
private $parameters;
private $bConnected = false;
public $querycount = 0;
function __construct($DBName, $DBTable)
{
$this->Host = getenv("DATABASE_HOST");
$this->DBPort = getenv("DATABASE_PORT");
$this->DBUser = getenv("DATABASE_USER");
$this->DBPassword = getenv("DATABASE_PASSWORD");
$this->DBName = $DBName;
$this->DBTable = $DBTable;
$this->Connect();
$this->$parameters = array();
}
private function Connect()
{
try{
echo "I am the good child and always print".PHP_EOL;
$this->PDO = new PDO("mysql:host=localhost;port=33061;dbname=store", "root", "password");
echo "Please Print Me <3".PHP_EOL;
$this->bConnected = true;
} catch (PDOException $e){
echo $e->getMessage();
die();
}
}
我已经检查了host、dbport等的值,在下面的代码中,我对它们的所有值都进行了硬编码,这样就不会因为在适当的槽中插入变量的格式而出错。我知道pdo是打开的,因为我可以在其他项目中使用它,但是我的捕获没有捕获任何东西,我可以让第一个echo运行,但是第二个永远不会出现。任何帮助都将是可怕的,因为在这一点上,我抓挠我的头,为什么我不能得到这个连接。
谢谢!
如果我不清楚,我可以尝试提供清晰,我也可以显示驱动程序文件,如果需要的话,但基本上,它只是调用构造函数刚刚好,连接函数给我们带来了问题。
1条答案
按热度按时间33qvvth11#
我已经检查了我的每一行代码大约在最后一个小时左右,如果不是更多。我发现我的变量有些不一致。我在几个地方用过
$this->$parameters
或者其他的变体,这些变体似乎没有由于某种原因导致错误,但是使代码无法运行。我不知道为什么它没有抛出一个关于变量的错误,但这似乎是导致我的问题。谢谢你的时间和帮助!