【问题标题】:Unable to insert data into PostgreSQL table through php heroku app无法通过 php heroku 应用程序将数据插入 PostgreSQL 表
【发布时间】:2018-08-08 15:01:41
【问题描述】:

我正在尝试使用 postgresql 后端在 heroku 上创建一个简单的 php 应用程序。 我已经使用 heroku 提供的凭据创建了与 postgresql 服务器的连接:-

<?php

class DB_Connect
    {
        private $db; 
        public function connect()
        {
          $host        = "";
          $port        = "port=5432";
          $dbname      = "";
          $credentials = "user= password=";

          $db = pg_connect( " $url $host $port $dbname $credentials"  );
          if(!$db){
             echo "Error : Unable to open database\n";
          } else {
             echo "Opened database successfully\n";
          }
        }
    }

    $db1 = new DB_Connect();
    $conn = $db1->connect();

    $query = "insert into public.user_test(name,email) values('val','val@in.com')";
    $result = pg_query($conn,$query);
    echo $result;
?>

当我在 heroku 上部署应用程序时,我收到一条已成功打开数据库的消息,但当我使用 pgadmin 检查表时,没有任何内容插入到表中。

我尝试了使用和不使用架构名称“public”,但这也没有帮助。

当我通过提供本地 postgresql 凭据在本地运行应用程序时,表格会被填充。

【问题讨论】:

  • 请注意$db = pg_connect.. 中的$dbprivate $db 中的不同。

标签: php postgresql heroku


【解决方案1】:

您没有在连接方法中返回连接。在 if 条件之后添加 return $db; 应该可以解决问题。

class DB_Connect
{
    public function connect()
    {
      $host        = "";
      $port        = "port=5432";
      $dbname      = "";
      $credentials = "user= password=";

      $db = pg_connect( " $url $host $port $dbname $credentials"  );
      if(!$db){
         echo "Error : Unable to open database\n";
      } else {
         echo "Opened database successfully\n";
      }
      return $db;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-26
    • 2021-06-12
    • 2018-04-08
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多