Skip site navigation (1) Skip section navigation (2)

troubles with getting data from tables

From: Roman Bogorodskiy <bogorodskiy(at)inbox(dot)ru>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: troubles with getting data from tables
Date: 2003-09-23 16:17:50
Message-ID: 20030923201750.7cacf851.bogorodskiy@inbox.ru (view raw or flat)
Thread:
Lists: pgsql-interfaces
  pgsql-interfaces@

	I'm writing a backend for some ftp demon on C.  I want to make it possible 
to authorize server's clients via pgsql. And I have a such problem:

I have a function FCN_VALIDATE_LOGIN which checks if a given users name is ok.

It's looks like this (I've removed some  debug code) :

---cut 8<---

int
FCN_VALIDATE_LOGIN (const char *login)
{
        PGresult *res;

        char *query;
        query = malloc(256);

        sprintf(query, "SELECT * FROM users WHERE name=\'%s\';", login);

        res = PQexec(conn, query);

        if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) {
                fprintf(stderr, "%s\n", PQresultErrorMessage(conn));
                printf("Error\n");
        }

        if (PQntuples(res) == 1) {
                int uid_field_index;
                unsigned int *uid;

                uid_field_index = PQfnumber(res, "uid");
                uid = (int *) PQgetvalue(res, 0, uid_field_index);

#ifdef DEBUG
        fprintf(stderr, "uid_field_index = %i\n uid %i\n", uid_field_index, uid);
#endif
        //      return uid;
        } else { // Not such user
                return -1;
        }

        PQclear(res);
}

---cut 8<---


And I have a such table:

---cut 8<---

CREATE TABLE users (
    name character varying NOT NULL,
    passwd character varying,
    home character varying,
    groups character varying NOT NULL,
    rights character varying NOT NULL,
    uid int4 NOT NULL,
    ip_allowed character varying,
    max_dl_speed integer,
    bytes_ul_total bigint,
    bytes_dl_total bigint,
    ratio integer,
    flags character varying,
    user_slots integer,
    leech_slots integer
);

---cut 8<---

I have only one row in this table where uid is '1001'.

wzdftpd=# select uid from users;
uid
------
1001
(1 row)

But instead of '1001' "uid" value is '134820376'. Where I was wrong?

-Roman Bogorodskiy [Novel]


Responses

pgsql-interfaces by date

Next:From: Jeroen T. VermeulenDate: 2003-09-23 16:45:04
Subject: Re: troubles with getting data from tables
Previous:From: Paulo ScardineDate: 2003-09-22 19:02:57
Subject: Re: Killing the backend to cancel a long waiting query

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group