Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PostgreSQL i PHP, last inserted id

[es] :: PostgreSQL :: PostgreSQL i PHP, last inserted id

[ Pregleda: 5605 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

miličić.marko
Miličić Marko
Novi Sad

Član broj: 12598
Poruke: 346
89.124.143.*

Sajt: milicicmarko.blogspot.com


+1 Profil

icon PostgreSQL i PHP, last inserted id29.04.2007. u 20:40 - pre 186 meseci
Kako da iz PHP-a ubacim red u neku tabelu, a kao rezultat dobijem id tj. primarni knjuc pod kojim je taj red ubacen u bazu?

Na primer hocu da izvrsim 'INSERT INTO korisnici ('ime', 'prezime') VALUES ('Pera', 'Peric') i time dodam red u tabelu strukture (ID, IME, PREZIME). Ono sto meni treba je ID pod kojim je red snimljen u bazu.

Hvala
Skripte iz oblasti računarstva na Srpskom jeziku
kontakt email milicic [tacka] marko [na] gmail [tacka] com

Numizmatička kolekcija:
http://numismaticscollection.blogspot.com/
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: PostgreSQL i PHP, last inserted id30.04.2007. u 09:16 - pre 186 meseci
Ako sam te dobro razumeo, ID treba da bude autoincrement?
Mislim da PostgreSQL 8.2 ima tu opciju.

Edit: ima.

[Ovu poruku je menjao Miloš Baić dana 30.04.2007. u 14:42 GMT+1]
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: PostgreSQL i PHP, last inserted id30.04.2007. u 11:00 - pre 186 meseci
Treba ti PostgreSQL 8.2:
Code:

INSERT INTO korisnici (ime, prezime) VALUES ('Pera', 'Peric') RETURNING id;

"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

miličić.marko
Miličić Marko
Novi Sad

Član broj: 12598
Poruke: 346
89.124.143.*

Sajt: milicicmarko.blogspot.com


+1 Profil

icon Re: PostgreSQL i PHP, last inserted id30.04.2007. u 20:49 - pre 186 meseci
Hvala. Bas mi je to trebalo :)
Skripte iz oblasti računarstva na Srpskom jeziku
kontakt email milicic [tacka] marko [na] gmail [tacka] com

Numizmatička kolekcija:
http://numismaticscollection.blogspot.com/
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.routotelecom.com.



+1 Profil

icon Re: PostgreSQL i PHP, last inserted id11.05.2007. u 11:59 - pre 185 meseci
PHP kod
Code:

$res = pg_query("INSERT INTO users(username, password, cursms, maxsms) VALUES('pera', 'pera', 0, 100) RETURNING id");
$rows = array();
$rows = pg_fetch_row($res);
echo("<p>$rows[0]</p>");

vraća ID unetog reda, ali izgleda da iz C-a to ne ide.
Code:

string query = "INSERT INTO users(username, password, cursms, maxsms) VALUES('pera', 'pera', 0, 100) RETURNING id";
PGresult* res = PQexec(dbConn, query.c_str());
if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
    PQclear(res);
    throw runtime_error("inserting into users table failed");
}
PQclear(res);

baca izuzetak mada upisuje podatak u bazu. Pored toga, nije jasno da li podatak koji se vraća treba prihvatiti preko PQgetvalue(). Ne znam da li ja negde grešim ili je problem do libpq biblioteke.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: PostgreSQL i PHP, last inserted id11.05.2007. u 22:06 - pre 185 meseci
Posto se kao rezultat dobija torka (tuple), pri proveri bi trebalo da se koristi
Code:

PGRES_TUPLES_OK
a ne
Code:

PGRES_COMMAND_OK

Ne znam C, ali mi po dokumentaciji o libpq i PQresultStatus to deluje logicno.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.routotelecom.com.



+1 Profil

icon Re: PostgreSQL i PHP, last inserted id14.05.2007. u 13:33 - pre 185 meseci
Jeste, hvala.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

3emyh
Vladimir Aleksić
Zemun

Član broj: 6755
Poruke: 48
*.static.sbb.co.yu.

Sajt: tesla.rcub.bg.ac.yu/~valt..


+2 Profil

icon Re: PostgreSQL i PHP, last inserted id15.06.2007. u 21:03 - pre 184 meseci
A kako to isto da uradim ako imam stariju verziju PG-a koja ne podrzava returning, a da ne instaliram novu verziju?
 
Odgovor na temu

miličić.marko
Miličić Marko
Novi Sad

Član broj: 12598
Poruke: 346
89.125.118.*

Sajt: milicicmarko.blogspot.com


+1 Profil

icon Re: PostgreSQL i PHP, last inserted id17.06.2007. u 00:16 - pre 184 meseci
Mozes sam da napises stored proceduru koja ce da vrati ID posle insert-a. Na primer nesto ovako:

Code:

DECLARE
    _kod_proizvoda INTEGER;
BEGIN
    INSERT INTO jezgro.proizvodi (pocetak, kraj, stavki_dostavljeno, status_dostave)
        VALUES(NOW(), NULL, NULL, 15);

    SELECT INTO _kod_proizvoda
        currval('jezgro.proizvodi_kod_seq') AS kod
    ;

    RETURN _kod_proizvoda;
END;

Skripte iz oblasti računarstva na Srpskom jeziku
kontakt email milicic [tacka] marko [na] gmail [tacka] com

Numizmatička kolekcija:
http://numismaticscollection.blogspot.com/
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.132.eunet.yu.



+1 Profil

icon Re: PostgreSQL i PHP, last inserted id17.06.2007. u 13:36 - pre 184 meseci
Pogledaj funkcije currval i nextval, poglavlje 9.12 Sequence Manipulation Functions dokumentacije za Postgres.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

Svemirko Joca
Zemun

Član broj: 49238
Poruke: 84
89.216.198.*

Sajt: www.liveforspeed.net


Profil

icon Re: PostgreSQL i PHP, last inserted id10.10.2007. u 15:26 - pre 180 meseci
Citat:
chachka: Treba ti PostgreSQL 8.2:
Code:

INSERT INTO korisnici (ime, prezime) VALUES ('Pera', 'Peric') RETURNING id;

ili sam corav ili ovo kod mene ne radi !!!

Code:

INSERT INTO komentar(ime, komentar) VALUES ('hajde', 'radi bre') RETURNING id;

odgovor iz pgAdmin dobijam ovako:

ERROR: could not open relation with OID 1
SQL state: XX000

kako sam trebao kreirati tabelu tacnije kolonu id.
kod mene je ovako
dafault value : nextval((1)::regclass)

gde gresim.....
ako moze sto pre odgovor, krajnje mi je hitno !
Hvala
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: PostgreSQL i PHP, last inserted id10.10.2007. u 15:56 - pre 180 meseci
Netreba
Code:

nextval((1)::regclass)
, nego
Code:

nextval('neka_sekvenca'::regclass)

"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Svemirko Joca
Zemun

Član broj: 49238
Poruke: 84
89.216.198.*

Sajt: www.liveforspeed.net


Profil

icon Re: PostgreSQL i PHP, last inserted id10.10.2007. u 16:14 - pre 180 meseci
hvala za munjevit odgovor ali nije mi pomogao... bas se lose snalazim sa ovim adminpanelom.... sve nesto klikcem nikako da uzmem lepo da kucam sql (mada koliko se razlikuju sql-ovi od baza do baza pitanje je da li bi i znao :P )

CREATE TABLE komentar1
(
id integer NOT NULL DEFAULT nextval(('aaa')::regclass),
ime character varying(30) NOT NULL,
komentar text NOT NULL,
PRIMARY KEY (id)
) WITHOUT OIDS;

javlja
error: relation 'aaa' does not exist

moze li mi neko reci gde mogu da kucam sql a ne da klikcem (kada to klikcem na kraju imam sql jezicak ali tamo mogu samo da gledam a ne i da kucam) i ako nije problem da mi neko kaze kako bi trebao da izgleda sql za ovu bazicu.

znaci ime komentar da ima id int, koji se inkrementira i koji je primary, ime koje je duzine do 30 karaktera i komentar u obliku texta (ovo ime i komentar radi... zeza ovaj id).
posle mi treba da u kodu uradim upis sa insert into komentar (ime, komentar) values ($ime, $komentar);
krajnje jednostavno... ovo sam uradio u mssql-u i mysql-u a sada trebam i u ovom :)

jos jednom tnx
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: PostgreSQL i PHP, last inserted id10.10.2007. u 18:41 - pre 180 meseci
Adminpanel za PostgreSQL?!? Sta je to?

U cemu kucati SQL, to jest u cemu izvrsavati SQL? Postoji:
- DOS command line alat psql,
- PgAdmin,
- SQL Manager 2007 for PostgreSQL (moja preporuka bilo da je Full ili Lite varijanta),
- PostgreSQL Maestro,
- phpPgAdmin.

Za ono sto tebi treba je najlakse koristiti SERIAL:
Code:

CREATE TABLE komentar1
(
id SERIAL NOT NULL, 
ime character varying(30) NOT NULL, 
komentar text NOT NULL, 
PRIMARY KEY (id)
) WITHOUT OIDS;


[Ovu poruku je menjao chachka dana 10.10.2007. u 21:53 GMT+1]
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Svemirko Joca
Zemun

Član broj: 49238
Poruke: 84
89.216.198.*

Sajt: www.liveforspeed.net


Profil

icon Re: PostgreSQL i PHP, last inserted id10.10.2007. u 18:56 - pre 180 meseci
@chachka
Ma mislio sam ovaj pgadmin ali kako sam ovo tek danas instalirao nisam mu jos naucio ime tako da sam napisao kao adminpanel :P

command line najvise volim (za mysql samo to koristim) ali kada uzmem cmd

C:\Program Files\PostgreSQL\8.2\bin>psql
Password:
psql: FATAL: password authentication failed for user "Pedja"
e sad probao sam sve sifre koje bi dolazile u obzir (iskren da budem ne secam se dok sam vrsio instalaciju tako da sam zaboravio da li sam i sta uneo za pass) ali probao sam neke moje standardne passove i nece.... a preko pgadmina se logujem totalno sa drugim userom... nemam pojma odakle ovaj pedja :P

tako da za sada koristim samo pgadmin (ono sto ide uz samu instalaciju)

E ovo tvoje radi... no ovo sad prvi put vidim... pre nego sto sam postovao googlao sam auto_incremet za postgre i uvek sam vidjao ovaj nexval() ...... sta li je onda ovo serial ?! :)

u svakom slucaju ovaj tvoj sql radi pa razbija i php kod vise ne javlja gresku

HVALA PUNO !

Edit: Uređivanje teme

[Ovu poruku je menjao chachka dana 10.10.2007. u 21:55 GMT+1]
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: PostgreSQL i PHP, last inserted id10.10.2007. u 21:17 - pre 180 meseci
Otkucaj u komand promtu:
Code:
psql --help
Upoznaj se sa parametrima i opcijama koje se koriste uz komandu psql.


Na brzinu, ono što tebi treba je da specificiraš korisničko ime i bazu na koju želiš da se loguješ. To se postiže sa:
Code:
psql -U pg_korisnicko_ime -d ime_baze
Napomena: Mora biti veliko U! Tada ćeš morati da uneseš lozinku za prosleđenog korisnika.


A otkud 'Pedja'? Pa to je verovatno korisnik kojeg si naveo prilikom instalacije WinXP-a :)


SERIAL je samo skraćen način za obavljanje nekoliko akcija koje se sastoje u:
- kreiranju sekvence,
- dodeljivanju default vrednosti nekom atributu upotrebom nextval() funkcije koja kao parametar ima predhodno kreiranu sekvencu.
O ovome možeš pročitati u PostgreSQL online dokumentaciji o numeričkim tipovima podataka.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Svemirko Joca
Zemun

Član broj: 49238
Poruke: 84
89.216.198.*

Sajt: www.liveforspeed.net


Profil

icon Re: PostgreSQL i PHP, last inserted id10.10.2007. u 22:24 - pre 180 meseci
Hvala puno !
Zaista skratio si mi vreme za nerviranje jedno 2 dana :)
pokusavao sam ja i da googlam, ali nisam bas nailazio na neko resenje
evo ovo sam koristio....
http://www.linuxnetworks.de/do..._SQL/Statements/Generating_IDs
ima tamo PostgreSQL deo i ne znam kako mi nije prosao taj kod.... tamo su ga stavili a meni nije hteo da radi....

u svakom slucaju hvala puno, ovo sam zavrsio a sada prelazim na Firebird :P
p.s. nije da sam expert za ovo pocetnik sam ali cinimi se da za sada nece vise biti problema sa posgre :P
 
Odgovor na temu

michaelk
Michael Kopljan
Software developer
Frankfurt am Main

Član broj: 85498
Poruke: 131
*.adsl.beotel.net.



+26 Profil

icon Re: PostgreSQL i PHP, last inserted id12.10.2007. u 16:15 - pre 180 meseci
@chachka:
SQL Manager 2007 for PostgreSQL (moja preporuka bilo da je Full ili Lite varijanta),

I moja samo ako mozes da dodes do verzije 2005 posto verzija 2007 ima bug-ove koje jos uvek nisu uspeli da otklone a ja sam ih poslao ( i potvrdeni su) jos negde u julu i dosad ih nisu uspeli otkloniti. Doduse svi se odnose na "Code completition" ali ako puno tuces po procedurama i upitima takva stvar ti mnogo znaci pogotovo ako si je imao pre (verzija 2005) i radila je besprekorno a sada neradi.

 
Odgovor na temu

[es] :: PostgreSQL :: PostgreSQL i PHP, last inserted id

[ Pregleda: 5605 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.