1

我当前的 android 应用程序允许用户键入聊天室名称,我将在其中使用存储为数据库名称的名称。因此,存储的名称将用于使用 PHP Web 服务连接到数据库。我知道有一些解决方案正在编辑 pg_ident.conf 文件,允许将 www-data 识别为访问数据库的用户之一。但是,我希望有更好的解决方案。提前感谢您提供的帮助。

这是我收到的错误消息

警告:pg_connect() [function.pg-connect]:无法连接到 PostgreSQL 服务器:致命:角色“www-data”不存在。

PHP 代码 (blabla.php)

<?php
 $host = "localhost";
 $user = "bbcc";
 $db=$_POST['name'];
 $passwd = "abc";

 $con = pg_connect("host=$host dbname=$db user=$user password=$passwd") or die ("Could not connect to server\n" . pg_last_error());
?>

Java 代码片段

   private void valid() { 

        String room = "abcd";
        try{
             HttpParams params = new BasicHttpParams();
             HttpConnectionParams.setConnectionTimeout(params, 20 * 1000);
             HttpConnectionParams.setSoTimeout(params, 30 * 1000);
             HttpClient httpclient = new DefaultHttpClient(params);
             HttpPost httppost = new HttpPost("http://111.11.111.000/script/blabla.php");
             List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();    
             nameValuePairs.add(new BasicNameValuePair("name", room));
             httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
             HttpResponse response = httpclient.execute(httppost);
        }catch(Exception e){
            e.printStackTrace();
        }
  }
4

1 回答 1

0

检查此设置 pg_hba.conf

该文件控制:允许连接哪些主机、如何验证客户端、可以使用哪些 PostgreSQL 用户名、可以访问哪些数据库。记录采用以下形式之一:

local      DATABASE  USER  METHOD  [OPTIONS]
host       DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTIONS]
hostssl    DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTIONS]
hostnossl  DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTIONS]
于 2013-07-25T12:59:43.513 回答