/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
opret tabel i PGSQL - hvor er fejlen ?
Fra : Henrik Stidsen


Dato : 18-03-02 23:09

pg_exec(
"CREATE TABLE '$tabel' (
   'abc' text NOT NULL,
   'def' text NOT NULL,
   'ghj' text NOT NULL,
   'klm' text NOT NULL,
   'nop' text NOT NULL,
   'qrs' text NOT NULL,
   'xyz' text NOT NULL,
   'yup' text ,
   PRIMARY KEY ('abc'),
   UNIQUE ('abc')
   )"
);

Jeg kan ikke finde fejlen, har prøvet alle mulige kombinationer af
det ene og det andet, får en fejl der siger:

Warning: PostgreSQL query failed: ERROR: parser: parse error at or
near "'" in /sql.php on line 14

Linienummeret er ændret så det passer til ovenstående kode, fejlen er
altså i den allersidste linie! - eller, det er der den finder ud af
der er en fejl!

Håber en af jer kan se fejlen, jeg kan ikke, har stirret på det alt
for længe :(

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

 
 
Andreas Kleist Svend~ (18-03-2002)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 18-03-02 23:24

On Mon, 18 Mar 2002 22:09:16 GMT
Henrik Stidsen <s-p-a-m@spammer.dk> wrote:

> Håber en af jer kan se fejlen, jeg kan ikke, har stirret på det alt
> for længe :(

Du har formentlig større held med databasespørgsmål i dk.edb.database

--
mvh Andreas Kleist Svendsen

Henrik Stidsen (19-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 19-03-02 00:22

Andreas Kleist Svendsen <usenetnospam@nau.dk> wrote in
news:20020318232408.1f81f1b1.usenetnospam@nau.dk

>> Håber en af jer kan se fejlen, jeg kan ikke, har stirret på det
>> alt for længe :(
>
> Du har formentlig større held med databasespørgsmål i
> dk.edb.database

nu er det så PHP, men ellers har du ret (hint : det er PHP der bruges
til at snakke med databasen)

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Jonas Koch Bentzen (19-03-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 19-03-02 09:58

Henrik Stidsen skrev:

> Andreas Kleist Svendsen <usenetnospam@nau.dk> wrote in
> news:20020318232408.1f81f1b1.usenetnospam@nau.dk
>
>>> Håber en af jer kan se fejlen, jeg kan ikke, har stirret på det
>>> alt for længe :(
>>
>> Du har formentlig større held med databasespørgsmål i
>> dk.edb.database
>
> nu er det så PHP, men ellers har du ret (hint : det er PHP der bruges
> til at snakke med databasen)

Det er irrelevant. Tænk på det sådan her: Ville du have haft samme
problem, hvis du kørte SQL-kommandoen i kommandolinjeklienten, via Perl
eller noget andet? Ja, det ville du. Så handler spørgsmålet om
PostgreSQL, ikke om PHP's PostgreSQL-klientfunktioner.

--
Jonas Koch Bentzen

http://understroem.dk/

Henrik Stidsen (19-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 19-03-02 13:23

Jonas Koch Bentzen <ingen.emailadresse@eksempel.dk> wrote in
news:a76uj3$fq7$1@sunsite.dk

>> nu er det så PHP, men ellers har du ret (hint : det er PHP der
>> bruges til at snakke med databasen)
>
> Det er irrelevant. Tænk på det sådan her: Ville du have haft
> samme problem, hvis du kørte SQL-kommandoen i
> kommandolinjeklienten, via Perl eller noget andet? Ja, det ville
> du. Så handler spørgsmålet om PostgreSQL, ikke om PHP's
> PostgreSQL-klientfunktioner.

nej, for hvis jeg kørte den direkte skulle den skrives på en anden
måde (jo, det skulle den, " og ' skulle sættes anderledes!)

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Martin Mouritzen (19-03-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 19-03-02 15:47

After I finished the 3 Pan Galactic Gargle Blasters, Henrik Stidsen
<s-p-a-m@spammer.dk> just offered me, he muttered some weird stuff,
and I had to correct this gibberish:

>nej, for hvis jeg kørte den direkte skulle den skrives på en anden
>måde (jo, det skulle den, " og ' skulle sættes anderledes!)

Det er stadig den forkerte gruppe du er i, uanset hvordan du vender og
drejer det. Du har problemer med en SQL kommando, og SQL hører til i
dk.edb.database
--
Nano Martin Mouritzen Phone +45 24899896
Vestergade 43 Programmer Advanced Simplicty
DK-8000 Århus martin@nano.dk http://www.nano.dk
Note: Nano søger samarbejdspartnere, se mere på websitet

Henrik Stidsen (19-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 19-03-02 15:51

Martin Mouritzen <martin@fez.dk> wrote in
news:a77j3s$1dbv$1@news.cybercity.dk

>>nej, for hvis jeg kørte den direkte skulle den skrives på en
>>anden måde (jo, det skulle den, " og ' skulle sættes
>>anderledes!)
>
> Det er stadig den forkerte gruppe du er i, uanset hvordan du
> vender og drejer det. Du har problemer med en SQL kommando, og
> SQL hører til i dk.edb.database

well, eftersom det er PHP parseren der giver fejlen (ja, der stod :
error: parser: parse error) kan jeg ikke engang med min bedste vilje
se at det er et databasespørgsmål!

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Jonas Koch Bentzen (19-03-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 19-03-02 16:05

Henrik Stidsen skrev:

> Martin Mouritzen <martin@fez.dk> wrote in
> news:a77j3s$1dbv$1@news.cybercity.dk
>
>>>nej, for hvis jeg kørte den direkte skulle den skrives på en
>>>anden måde (jo, det skulle den, " og ' skulle sættes
>>>anderledes!)
>>
>> Det er stadig den forkerte gruppe du er i, uanset hvordan du
>> vender og drejer det. Du har problemer med en SQL kommando, og
>> SQL hører til i dk.edb.database
>
> well, eftersom det er PHP parseren der giver fejlen (ja, der stod :
> error: parser: parse error) kan jeg ikke engang med min bedste vilje
> se at det er et databasespørgsmål!

Du må vist lære at fortolke fejlmeddelelserne lidt bedre : ) Det er
rigtigt, der er en fortolkningsfejl, men det fremgår ret tydeligt, at
den fejlmeddelelse kommer fra PostgreSQL-serveren. PHP-klienten
opfanger så den fejlmeddelelse og viser den til brugeren.

Hvis du f.eks. skriver "SELCT * FROM tabel" i PostgreSQLs
kommandolinjeklient, så vil du også få en "parse error"-fejl.

--
Jonas Koch Bentzen

http://understroem.dk/

Henrik Stidsen (19-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 19-03-02 16:08

Jonas Koch Bentzen <ingen.emailadresse@eksempel.dk> wrote in
news:a77k2n$oll$1@sunsite.dk

>> well, eftersom det er PHP parseren der giver fejlen (ja, der
>> stod : error: parser: parse error) kan jeg ikke engang med min
>> bedste vilje se at det er et databasespørgsmål!
>
> Du må vist lære at fortolke fejlmeddelelserne lidt bedre : ) Det
> er rigtigt, der er en fortolkningsfejl, men det fremgår ret
> tydeligt, at den fejlmeddelelse kommer fra PostgreSQL-serveren.
> PHP-klienten opfanger så den fejlmeddelelse og viser den til
> brugeren.

hvis der er nogen der skal ændre på noget, så må det være PHP folkene
der skal ændre på fejlmeddelelserne ;)
jeg kan altså ikke helt se hvor det tydelige i fejlen kommer, det
er nok bare mig så...

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Jonas Koch Bentzen (19-03-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 19-03-02 16:13

Henrik Stidsen skrev:

> Jonas Koch Bentzen <ingen.emailadresse@eksempel.dk> wrote in
> news:a77k2n$oll$1@sunsite.dk
>
>>> well, eftersom det er PHP parseren der giver fejlen (ja, der
>>> stod : error: parser: parse error) kan jeg ikke engang med min
>>> bedste vilje se at det er et databasespørgsmål!
>>
>> Du må vist lære at fortolke fejlmeddelelserne lidt bedre : ) Det
>> er rigtigt, der er en fortolkningsfejl, men det fremgår ret
>> tydeligt, at den fejlmeddelelse kommer fra PostgreSQL-serveren.
>> PHP-klienten opfanger så den fejlmeddelelse og viser den til
>> brugeren.
>
> hvis der er nogen der skal ændre på noget, så må det være PHP folkene
> der skal ændre på fejlmeddelelserne ;)
> jeg kan altså ikke helt se hvor det tydelige i fejlen kommer, det
> er nok bare mig så...

Hvis der var en PHP-fortolkningsfejl, så ville PHP overhovedet ikke nå
at sende din SQL-kommando videre til PostgreSQL - den ville dø inden.
Prøv f.eks. at tilføj et par ekstra gåseøjne efter SQL-kommandoen -
sådan her:

pg_exec(
"CREATE TABLE '$tabel' (
'abc' text NOT NULL,
'def' text NOT NULL,
'ghj' text NOT NULL,
'klm' text NOT NULL,
'nop' text NOT NULL,
'qrs' text NOT NULL,
'xyz' text NOT NULL,
'yup' text ,
PRIMARY KEY ('abc'),
UNIQUE ('abc')
)""
);

Nu siger PHP:
Parse error: parse error in /www/understroem.dk/htdocs/test/test2.php
on line 16

Hvis man derimod fjerner de ekstra gåseøjne (og altså affyrer din
oprindelige SQL-kommando), så får man følgende fejlmeddelelse:
Warning: PostgreSQL query failed: ERROR: parser: parse error at or near
"'" in /www/understroem.dk/htdocs/test/test2.php on line 16

Læg mærke til, at der står "PostgreSQL query failed". Det er dét, der
fortæller dig, at det er PostgreSQL, der klager over en
fortolkningsfejl, ikke PHP.

--
Jonas Koch Bentzen

http://understroem.dk/

Henrik Stidsen (19-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 19-03-02 16:33

Jonas Koch Bentzen <ingen.emailadresse@eksempel.dk> wrote in
news:a77ki5$rbc$1@sunsite.dk

> Læg mærke til, at der står "PostgreSQL query failed". Det er
> dét, der fortæller dig, at det er PostgreSQL, der klager over en
> fortolkningsfejl, ikke PHP.

okay, du vinder ;)

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Jonas Koch Bentzen (19-03-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 19-03-02 18:40

Henrik Stidsen skrev:
>
> okay, du vinder ;)

Selvfølgelig - det gør jeg altid : )

--
Jonas Koch Bentzen

http://understroem.dk/

Svenne Krap (19-03-2002)
Kommentar
Fra : Svenne Krap


Dato : 19-03-02 00:04

On Mon, 18 Mar 2002 22:09:16 GMT, Henrik Stidsen <s-p-a-m@spammer.dk>
wrote:

>
>Jeg kan ikke finde fejlen, har prøvet alle mulige kombinationer af
>det ene og det andet, får en fejl der siger:
>
>Warning: PostgreSQL query failed: ERROR: parser: parse error at or
>near "'" in /sql.php on line 14
>

Tabel og feltnavne skal omsluttes af doublequotes (gåseøjne).

Svenne
--
Job-offerings with more than a googolplex* USD a year are instantly accepted.
* = http://www.fpx.de/fp/Fun/Googolplex/

Henrik Stidsen (19-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 19-03-02 14:18

Svenne Krap <usenet@krap.dk> wrote in
news:ihsc9ugvrr2p53rsoup3rnf59626rboohl@4ax.com

>>Warning: PostgreSQL query failed: ERROR: parser: parse error at or
>>near "'" in /sql.php on line 14
>>
>
> Tabel og feltnavne skal omsluttes af doublequotes (gåseøjne).

giver ingen forskel, stadig samme fejl :(

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Martin Mouritzen (19-03-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 19-03-02 15:50

After I finished the 3 Pan Galactic Gargle Blasters, Henrik Stidsen
<s-p-a-m@spammer.dk> just offered me, he muttered some weird stuff,
and I had to correct this gibberish:

>pg_exec(
>"CREATE TABLE '$tabel' (
>   'abc' text NOT NULL,
>   'def' text NOT NULL,
>   'ghj' text NOT NULL,
>   'klm' text NOT NULL,
>   'nop' text NOT NULL,
>   'qrs' text NOT NULL,
>   'xyz' text NOT NULL,
>   'yup' text ,
>   PRIMARY KEY ('abc'),
>   UNIQUE ('abc')
>   )"
>);
>
>Jeg kan ikke finde fejlen, har prøvet alle mulige kombinationer af
>det ene og det andet, får en fejl der siger:
>
>Warning: PostgreSQL query failed: ERROR: parser: parse error at or
>near "'" in /sql.php on line 14

Prøv at echo'e dit query ud før du eksekverer det, der kan man som
regel se hvis man har lavet fejl. (f.eks. at $tabel rent faktisk ikke
indeholder noget).
--
Nano Martin Mouritzen Phone +45 24899896
Vestergade 43 Programmer Advanced Simplicty
DK-8000 Århus martin@nano.dk http://www.nano.dk
Note: Nano søger samarbejdspartnere, se mere på websitet

Henrik Stidsen (19-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 19-03-02 15:55

Martin Mouritzen <martin@fez.dk> wrote in
news:a77j87$1dbv$2@news.cybercity.dk

>>Warning: PostgreSQL query failed: ERROR: parser: parse error at
>>or near "'" in /sql.php on line 14
>
> Prøv at echo'e dit query ud før du eksekverer det, der kan man
> som regel se hvis man har lavet fejl. (f.eks. at $tabel rent
> faktisk ikke indeholder noget).

$tabel variablen har indhold, fejlen kommer stadig først i slutningen
af kommandoen (virker som om der er forkert afslutning på pg_exec,
forstår bare ikke hvor...

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Andreas Kleist Svend~ (19-03-2002)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 19-03-02 16:06

On Tue, 19 Mar 2002 14:54:46 GMT
Henrik Stidsen <s-p-a-m@spammer.dk> wrote:

> $tabel variablen har indhold, fejlen kommer stadig først i slutningen
> af kommandoen (virker som om der er forkert afslutning på pg_exec,
> forstår bare ikke hvor...

Prøv at skære ned på dit query indtil du ikke får fejlen mere. Og fortæl
så præcis hvor fejlen er, eller vis et mindre eksempel der giver fejl.

Du kan eventuelt også prøve at kalde pg_exec med din "connection resource"
som første parameter, altså pg_exec(resource connection, string query);

(Ja, jeg ved godt at man ifølge manualen skal kunne bruge pg_exec både med
og uden connection, det kan jo være der er noget bug-lignende tilstede
her)

--
mvh Andreas Kleist Svendsen

Henrik Stidsen (19-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 19-03-02 17:28

Andreas Kleist Svendsen <usenetnospam@nau.dk> wrote in
news:20020319160619.036f00cf.usenetnospam@nau.dk

>> $tabel variablen har indhold, fejlen kommer stadig først i
>> slutningen af kommandoen (virker som om der er forkert
>> afslutning på pg_exec, forstår bare ikke hvor...
>
> Prøv at skære ned på dit query indtil du ikke får fejlen mere.
> Og fortæl så præcis hvor fejlen er, eller vis et mindre eksempel
> der giver fejl.

hvis jeg skærer ned til:
pg_exec($conn,   "CREATE TABLE $topmenu (section text NOT NULL)");
   så virker det, men så er der problemer hvis $topmenu indeholder
f.eks. mellemrum...

pg_exec($conn,   "CREATE TABLE '$topmenu' (section text NOT NULL)");
   samme fejl som før

pg_exec($conn,   "CREATE TABLE "$topmenu" (section text NOT NULL)");
   PHP parser error...

hvordan skal jeg skrive det for at både PHP og PGsql accepterer det ?

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Andreas Kleist Svend~ (19-03-2002)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 19-03-02 17:31

Henrik Stidsen wrote:

> hvordan skal jeg skrive det for at både PHP og PGsql accepterer det ?

Jeg ved ikke med PG,(dk.edb.database) men i PHP kan du skrive gåseøjne i en
tekststreng vha. \ dvs. "CREATE TABLE \"$topmenu\" (section text NOT NULL)".
--
mvh Andreas Kleist Svendsen

Henrik Stidsen (19-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 19-03-02 17:53

Andreas Kleist Svendsen <usenetnospam@nau.dk> wrote in
news:a77p3a$doo$1@sunsite.dk

>> hvordan skal jeg skrive det for at både PHP og PGsql accepterer
>> det ?
>
> Jeg ved ikke med PG,(dk.edb.database) men i PHP kan du skrive
> gåseøjne i en tekststreng vha. \ dvs. "CREATE TABLE \"$topmenu\"
> (section text NOT NULL)".

jowjow, det virker - nu mangler jeg så bare at finde ud af hvordan
PRIMARY KEY("ting") skal escapes så alle kan lide det...

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Andreas Kleist Svend~ (19-03-2002)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 19-03-02 18:32

Henrik Stidsen wrote:

> jowjow, det virker - nu mangler jeg så bare at finde ud af hvordan
> PRIMARY KEY("ting") skal escapes så alle kan lide det...

Virker det ikke hvis du escaper den ligesom resten?

--
mvh Andreas Kleist Svendsen

Henrik Stidsen (19-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 19-03-02 23:45

Andreas Kleist Svendsen <usenetnospam@nau.dk> wrote in
news:a77sml$rbs$1@sunsite.dk

>> jowjow, det virker - nu mangler jeg så bare at finde ud af hvordan
>> PRIMARY KEY("ting") skal escapes så alle kan lide det...
>
> Virker det ikke hvis du escaper den ligesom resten?

nope... :(

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Mads Lie Jensen (20-03-2002)
Kommentar
Fra : Mads Lie Jensen


Dato : 20-03-02 09:35

On Tue, 19 Mar 2002 22:45:08 GMT, Henrik Stidsen <s-p-a-m@spammer.dk>
wrote:

>>> jowjow, det virker - nu mangler jeg så bare at finde ud af hvordan
>>> PRIMARY KEY("ting") skal escapes så alle kan lide det...
>>
>> Virker det ikke hvis du escaper den ligesom resten?
>
>nope... :(

Der skal slet ikke pinger omkring:

CREATE TABLE "tabel" (
   "felt" integer,
   "felt2" character varying(25),
   PRIMARY KEY(felt)
)
--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk

Directory Opus - nu også til windows - http://www.gpsoft.com.au

Henrik Stidsen (20-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 20-03-02 15:39

Mads Lie Jensen <mads@gartneriet.dk> wrote in
news:f9ig9uovcdqd8v3k6tbr9cusn8ujg73g90@4ax.com

>>>> jowjow, det virker - nu mangler jeg så bare at finde ud af
>>>> hvordan PRIMARY KEY("ting") skal escapes så alle kan lide
>>>> det...
>>>
>>> Virker det ikke hvis du escaper den ligesom resten?
>>
>>nope... :(
>
> Der skal slet ikke pinger omkring:
>
> CREATE TABLE "tabel" (
> "felt" integer,
> "felt2" character varying(25),
> PRIMARY KEY(felt)
> )

det giver også fejl...

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Mads Lie Jensen (20-03-2002)
Kommentar
Fra : Mads Lie Jensen


Dato : 20-03-02 17:31

On Wed, 20 Mar 2002 14:39:21 GMT, Henrik Stidsen <s-p-a-m@spammer.dk>
wrote:

>> Der skal slet ikke pinger omkring:
>>
>> CREATE TABLE "tabel" (
>> "felt" integer,
>> "felt2" character varying(25),
>> PRIMARY KEY(felt)
>> )
>
>det giver også fejl...

Hvilken fejl?

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk

Directory Opus - nu også til windows - http://www.gpsoft.com.au

Henrik Stidsen (20-03-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 20-03-02 23:52

Mads Lie Jensen <mads@gartneriet.dk> wrote in
news:caeh9usmum1ekf9kpiu6fi5bq0efvpfe60@4ax.com

>>> Der skal slet ikke pinger omkring:
>>>
>>> CREATE TABLE "tabel" (
>>> "felt" integer,
>>> "felt2" character varying(25),
>>> PRIMARY KEY(felt)
>>> )
>>
>>det giver også fejl...
>
> Hvilken fejl?

samme som tidligere...

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste