php oop pdo连接被拒绝?
我试图使用连接到数据库,但我得到这个错误,我在php终端上运行这个 我查阅了其他类似的资料,但没有找到我想要的答案 有什么建议或最佳实践吗php oop pdo连接被拒绝?,php,pdo,Php,Pdo,我试图使用连接到数据库,但我得到这个错误,我在php终端上运行这个 我查阅了其他类似的资料,但没有找到我想要的答案 有什么建议或最佳实践吗 SQLSTATE[HY000] [2002] Connection refusedsomething went wrong Db.php <?php error_reporting(-1); class Db{ private $db_host; private $db_user; private $db_name;
SQLSTATE[HY000] [2002] Connection refusedsomething went wrong
Db.php
<?php
error_reporting(-1);
class Db{
private $db_host;
private $db_user;
private $db_name;
private $db_pass;
public function __construct()
{
$this->db_host = "127.0.0.1";
$this->db_user = "root";
$this->db_pass = "";
$this->db_name = "eli9";
try{
$pdo = new PDO("mysql:host=127.0.0.1;dbname=eli9", $this->db_user, $this->db_pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "connected sucessfully \n";
}
catch(PDOexception $e){
echo $e->getMessage();
echo "something went wrong \n";
}
}
}
试试这个,对我有用
$pdo = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user, $this->db_pass);
您将变量设置为$this->db_host=“127.0.0.1”
,但未用于连接
在连接并使用$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_警告)之前,不要使用类来尝试此操作
检查是否有任何错误
还可以尝试端口8889
try {
$db = new PDO("mysql:host=127.0.0.1;port=3306,dbname=eli9", 'root', '');
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
echo "connected";
}
catch (PDOException $e){
echo $e->getMessage();
}
在@addie代码的帮助下,我找到了问题所在,原因如下
1) 我最初没有使用端口号
2) 我把端口号改为8889,而不是3306
下面是Db.php的最终代码
<?php
error_reporting(-1);
class Db{
private $db_host;
private $db_user;
private $db_name;
private $db_pass;
public function __construct()
{
$this->db_host = "127.0.0.1";
$this->db_user = "root";
$this->db_pass = "root";
$this->db_name = "eli9";
try {
$db = new PDO("mysql:host=127.0.0.1;port=8889,dbname=eli9", 'root', 'root');
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
echo "connected";
}
catch (PDOException $e){
echo $e->getMessage();
}
}
}
谢谢,但还是不起作用,我最近更新到了PHP7,之前我用的是5.1,我想我知道了,你在用MAMP吗?
<?php
error_reporting(-1);
class Db{
private $db_host;
private $db_user;
private $db_name;
private $db_pass;
public function __construct()
{
$this->db_host = "127.0.0.1";
$this->db_user = "root";
$this->db_pass = "root";
$this->db_name = "eli9";
try {
$db = new PDO("mysql:host=127.0.0.1;port=8889,dbname=eli9", 'root', 'root');
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
echo "connected";
}
catch (PDOException $e){
echo $e->getMessage();
}
}
}