【问题标题】:Error in connecting to PostgreSQL database using data inserted from android application through PHP使用通过 PHP 从 android 应用程序插入的数据连接到 PostgreSQL 数据库时出错
【发布时间】:2013-07-25 11:12:56
【问题描述】:

我当前的 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代码sn-p

   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();
        }
  }

【问题讨论】:

  • 您是否在 Postgres 中创建了用户 www-data?也许不是。老实说:希望每个房间都有一个数据库或其他任何东西表明对如何使用关系数据库存在严重误解!通常每个应用程序都有一个数据库,一个或多个 TABLES 来保存模型,并且您的房间将是表中的单个 ROW。帮自己一个忙,阅读一些关于数据库的教程,它将获得 10 倍的回报!
  • Gyro,感谢您的建议,我从没想过将 www-data 更改为 Postgres 中的用户之一,因为它完全不碍事,对数据库结构进行了一些更改,谢谢指出出路,干杯

标签: java php android postgresql-9.1


【解决方案1】:

检查此设置 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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2015-08-08
    • 2015-09-15
    • 2021-05-14
    • 2011-12-21
    • 1970-01-01
    • 2013-07-04
    相关资源
    最近更新 更多