我有这段PHP代码,应该可以连接到heroku中的PostgreSQL数据库
下面的代码:
function __construct() {
$host = 'hostname';
$user = 'username';
$password = 'password';
$dbname = 'db_name';
$port = '5432';
try{
$this->db = new PDO('pgsql:host=$host;dbname=$dbname;user=$user;port=$port;password=$password');
}
catch (PDOException $e){
echo 'Connection failed: ' . $e->getMessage();
}
}
该连接抛出一个错误,如下所示:
连接失败:SQLSTATE [08006] [7]无效的端口号:“ $ port”
为什么我得到的端口号无效?
当我通过heroku cli连接时,一切似乎都还可以,但是php似乎不配合。
请帮助我找出我可能忽略的地方。
答案 0 :(得分:0)
变量仅用双引号引起来。
$this->db = new PDO("pgsql:host=$host;dbname=$dbname;user=$user;port=$port;password=$password");
它可能会抱怨$ port,这是因为它试图在建立连接之前将那个转换为int。如果可以做到这一点,那么它也会抱怨主机名。