PHP在Heroku上连接到Postgres时遇到麻烦

时间:2019-12-14 04:57:48

标签: php postgresql heroku

当部署到heroku时,似乎有些东西不起作用,因为我的端点未将我通过Heroku CLI连接输入的数据返回给postgres。在本地,我正在尝试使用以下命令进行故障排除。这是指向github的链接,该链接反映了我如何为heroku(https://github.com/AlexMercedCoder/SavvyBackendAPI/blob/master/api/models/comments.php)进行设置,下面的URL使用本地环境中字符串中的实际主机名。

$dbconn = pg_connect("host=<hostnamefromheroku>
 port=5432 dbname=d3qvmqtmq9s8b user=cticedgggntdqf password=5d17168b471db3b178e8ede79d5f92605d765375ea153444cd403c0a544f2146 sslmode=require");

当我在浏览器中从本地主机运行它时,出现以下错误:

<br />
<b>Warning</b>:  pg_connect(): Unable to connect to PostgreSQL server: could not translate host name &quot;dbname=d3qvmqtmq9s8b&quot; to address: Name or service not known in <b>/home/alexmerced/gasei/PHP/savvy/api/models/comments.php</b> on line <b>11</b><br />
<br />
<b>Warning</b>:  pg_query(): No PostgreSQL link opened yet in <b>/home/alexmerced/gasei/PHP/savvy/api/models/comments.php</b> on line <b>41</b><br />
<br />
<b>Notice</b>:  Undefined variable: result in <b>/home/alexmerced/gasei/PHP/savvy/api/models/comments.php</b> on line <b>43</b><br />
NULL
<br />
<b>Warning</b>:  pg_fetch_object() expects parameter 1 to be resource, bool given in <b>/home/alexmerced/gasei/PHP/savvy/api/models/comments.php</b> on line <b>45</b><br />
[]

所以测试一下建议,我在PHP Cli中本地运行了相同的命令,并且能够成功地从数据库中提取数据。 (使用相同的pg_query pg_fetch_object命令)

因此,对于如何越过这堵墙的任何建议,我们将不胜感激。我已经读过许多博客和有关此问题的问题,大多数解决方案似乎都无法解决问题。

这是已部署版本的链接:https://savvyhotspotsapi.herokuapp.com/api/comments

表明您使用root或/ api可以正常工作,我放置在那里的hello world index.php效果很好。

UPDATE 12/14/19

  • 我在本地获得了可用于API的应用程序,但是当我部署到heroku时,即使完全相同的代码也能够在本地php env上成功检索数据,仍然显示一个空数组。

我当前在本地工作的连接代码:

$DBURL = "host=$h dbname=$n user=$u port=5432 password=$p sslmode=require";

$dbconn = pg_connect($DBURL);

无论是否使用sslmode,我都尝试过,我使用字符串中的直接详细信息进行了尝试,似乎没有什么可以改变空数组。

0 个答案:

没有答案