我正在尝试使用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上部署应用程序时,我获得了一个Opened Database成功消息,但是当我使用pgadmin检查表时,没有任何内容插入到表中。
我尝试使用和不使用模式名称&#34; public&#34;,但这也没有帮助。
当我通过提供本地postgresql凭据在本地运行应用程序时,表格将被填充。
答案 0 :(得分:0)
您没有在connect方法中返回连接。在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;
}
}