/ 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
Query dur i phpmyadmin, men ikke fra php..~
Fra : Nygaard


Dato : 04-11-05 20:05

Hi,

Jeg har følgende:
$SQL='DELETE FROM GroupBase WHERE ID='.$_GET['itemid'].'; DELETE FROM
GroupLanguage WHERE GroupID='.$_GET['itemid'].';';
$qry = mysql_query($SQL);

- og der sker ingenting med databasen (Der er forbindelse, for sletter jeg
2. halvdel af queryen virker det)...

Echo'er jeg $SQL får jeg:
DELETE FROM GroupBase WHERE ID=9; DELETE FROM GroupLanguage WHERE
GroupID=9;
- og indsætter jeg den streng direkte i phpmyadmin, fungerer den efter
hensigten...

Nogen der kan se hvad der er galt?

Mvh
Nygaard

(P.S. Udbyderen har besluttet sig for at jeg ikke skal have lov til at se
fejlbeskeder, så jeg ved ikke hvilken fejl mysql _query returnerer....)



 
 
Mike (05-11-2005)
Kommentar
Fra : Mike


Dato : 05-11-05 11:50

$SQL='DELETE FROM GroupBase WHERE ID='.$_GET['itemid'].';
$SQL2 = "DELETE FROM GroupLanguage WHERE GroupID='.$_GET['itemid'].'";

$qry = mysql_query($SQL);
$qry2 = mysql_query($SQL2);

Kan det ikke gøres således?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Peter Brodersen (05-11-2005)
Kommentar
Fra : Peter Brodersen


Dato : 05-11-05 14:33

On Fri, 4 Nov 2005 20:04:49 +0100, "Nygaard" <nejtaktil@spam.dk>
wrote:

>Jeg har følgende:
> $SQL='DELETE FROM GroupBase WHERE ID='.$_GET['itemid'].'; DELETE FROM
>GroupLanguage WHERE GroupID='.$_GET['itemid'].';';
> $qry = mysql_query($SQL);
>
>- og der sker ingenting med databasen (Der er forbindelse, for sletter jeg
>2. halvdel af queryen virker det)...

Med mysql_query må du kun sende én forespørgsel. Du sender to stykker.

Semikolon er blot et afsluttende tegn for nogle klienter (fx
mysql-kommandolinjeprogrammet). Det er ikke noget, serveren håndterer.
Så med din nuværende mysql-forespørgsel ser serveren blot én lang
kommando, der indeholder et semikolon undervejs.

>Echo'er jeg $SQL får jeg:
> DELETE FROM GroupBase WHERE ID=9; DELETE FROM GroupLanguage WHERE
>GroupID=9;
>- og indsætter jeg den streng direkte i phpmyadmin, fungerer den efter
>hensigten...

phpmyadmin og andre klienter vælger at splitte ved semikolon og giver
på den måde mulighed for at sende flere forespørgsler af sted. Men det
er stadigvæk klienterne selv, der sørger for at bryde strengen op i
evt. flere forespørgsler.

>Nogen der kan se hvad der er galt?

>(P.S. Udbyderen har besluttet sig for at jeg ikke skal have lov til at se
>fejlbeskeder, så jeg ved ikke hvilken fejl mysql _query returnerer....)

mysql_query() giver nu ikke en PHP-fejl, hvis du sender en ugyldig
forespørgsel. Det er dit eget ansvar at tjekke returværdien for
mysql_query. Hvis $qry ikke indeholder en ressource, kan du fx
afvikle:
   print mysql_error();
... for at se fejlmeddelelsen. Det behøver ikke at have noget med din
udbyder at gøre.

--
- Peter Brodersen

Nygaard (05-11-2005)
Kommentar
Fra : Nygaard


Dato : 05-11-05 15:03


"Peter Brodersen" <usenet2005@ter.dk> wrote in message
news:dkicb4$ijv$1@news.klen.dk...
> On Fri, 4 Nov 2005 20:04:49 +0100, "Nygaard" <nejtaktil@spam.dk>
> wrote:
>
> >Jeg har følgende:
> > $SQL='DELETE FROM GroupBase WHERE ID='.$_GET['itemid'].'; DELETE FROM
> >GroupLanguage WHERE GroupID='.$_GET['itemid'].';';
> > $qry = mysql_query($SQL);
> >
> >- og der sker ingenting med databasen (Der er forbindelse, for sletter
jeg
> >2. halvdel af queryen virker det)...
>
> Med mysql_query må du kun sende én forespørgsel. Du sender to stykker.
>
> Semikolon er blot et afsluttende tegn for nogle klienter (fx
> mysql-kommandolinjeprogrammet). Det er ikke noget, serveren håndterer.
> Så med din nuværende mysql-forespørgsel ser serveren blot én lang
> kommando, der indeholder et semikolon undervejs.
>
> >Echo'er jeg $SQL får jeg:
> > DELETE FROM GroupBase WHERE ID=9; DELETE FROM GroupLanguage WHERE
> >GroupID=9;
> >- og indsætter jeg den streng direkte i phpmyadmin, fungerer den efter
> >hensigten...
>
> phpmyadmin og andre klienter vælger at splitte ved semikolon og giver
> på den måde mulighed for at sende flere forespørgsler af sted. Men det
> er stadigvæk klienterne selv, der sørger for at bryde strengen op i
> evt. flere forespørgsler.
>
> >Nogen der kan se hvad der er galt?
>
> >(P.S. Udbyderen har besluttet sig for at jeg ikke skal have lov til at se
> >fejlbeskeder, så jeg ved ikke hvilken fejl mysql _query returnerer....)
>
> mysql_query() giver nu ikke en PHP-fejl, hvis du sender en ugyldig
> forespørgsel. Det er dit eget ansvar at tjekke returværdien for
> mysql_query. Hvis $qry ikke indeholder en ressource, kan du fx
> afvikle:
> print mysql_error();
> .. for at se fejlmeddelelsen. Det behøver ikke at have noget med din
> udbyder at gøre.
>
> --
> - Peter Brodersen
Så lærte jeg også noget i dag - Takker..

/Nygaard



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste