/ 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
MIRAKLET ER SKET!! :-D
Fra : Dennis Munding


Dato : 15-05-05 18:38

Ærede brugere af Nyhedsgrupperne!!

Jeg har i den seneste tid forsøgt - forgæves! - at lave et script, så jeg
kunne redigere i min kalender.

Jeg har fået mange gode råd herinde, men desværre har intet hjulpet...

MEN!

I dag (for 10 min. siden) "faldt" jeg tilfældigvis over de "magiske" ord...

Jeg fandt dem på denne adresse:
http://www.webcafe.dk/debat/php/40395.html

Og manden der har skrevet dem, kalder sig for Madsen.
Jeg citerer:
"Husk, at hvis ID i databasen er af typen INT (tinyint, bigint...
Whatever-int), så skal der _ikke_ ' eller " omkring værdien i
WHERE-clausen."
Citat slut!

I min kode havde jeg utallige steder sat ' omkring $_GET[EventId], og der
var desværre ingen af jer som opdagede det....
Og da jeg selv er nybegynder, skænkede jeg det ikke en tanke... :-/

Nu har jeg fjernet dem (') - og nu virker det!

Det vil absolut ikke gå i "glemmebogen" - en ordentlig lærestreg!

Men!

Jeg vil hermed gerne have lov til at takke alle jer, som har forsøgt at
hjælpe mig ud af mit problem!!
For selvom I overså det samme, som jeg, så gjorde I et helhjertet forsøg
(føler jeg!) på at hjælpe mig!
Og jeg har efterhånden fået prøvet mange ting af i php takket være jer!

Endnu en gang tusind tak for hjælpen!!

(Jeg vender frygteligt tilbage...)

De bedste hilsner fra
--
Dennis Munding
Web-master
http://www.skovaa-munding.dk/
http://www.mundings-memorial.dk/
http://www.cantica.dk/



 
 
Erik Ginnerskov (15-05-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 15-05-05 19:20

Dennis Munding wrote:

> Jeg citerer:
> "Husk, at hvis ID i databasen er af typen INT (tinyint, bigint...
> Whatever-int), så skal der _ikke_ ' eller " omkring værdien i
> WHERE-clausen."
> Citat slut!

Tja, min viden om php kan som nogen allerede ved, være på et meget lille
sted. Men jeg ved da at:

En string *skal* pakkes ind i enten ' eller "
Et tal skal *ikke* pakkes ind.

Data af typen int (tinyint, bigint...Whatever-int) er heltal. I matematisk
forstand eksisterer kun int (integer), de andre varianter eksisterer kun i
databasesammenhæng og definerer antallet af mulige cifre.

Så længe et dataudtræk fra en database kun består af tal (0123456789) og
ingen andre tegn (bogstaver, ordmellemrum, matematiske operatorer eller
tegnsætningstegn), gælder php-reglen for tal.

Nu husker jeg ikke den tråd, du henviser til, men fremgik det af dit
spørgsmål, at de omhandlede data var heltal? Hvis ikke, er det klart ingen
kunne gennemskue dit problem.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk/



Jacob Atzen (15-05-2005)
Kommentar
Fra : Jacob Atzen


Dato : 15-05-05 19:41

On 2005-05-15, Erik Ginnerskov <erik@donotspammmeplease.invalid> wrote:
> Dennis Munding wrote:
>
>> Jeg citerer:
>> "Husk, at hvis ID i databasen er af typen INT (tinyint, bigint...
>> Whatever-int), så skal der _ikke_ ' eller " omkring værdien i
>> WHERE-clausen."
>> Citat slut!
>
> Tja, min viden om php kan som nogen allerede ved, være på et meget lille
> sted. Men jeg ved da at:
>
> En string *skal* pakkes ind i enten ' eller "
> Et tal skal *ikke* pakkes ind.

Problemet var tilsyneladende i SQL og ikke i PHP. I PHP må man gerne
pakke tal ind:

$ php -r "var_dump('2'); var_dump('2'+'2');"
string(1) "2"
int(4)

Som det ses, kan PHP godt håndtere tal selvom de er forklædt som
strenge.

--
Med venlig hilsen
- Jacob Atzen

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


Dato : 15-05-05 20:39

On 15 May 2005 18:40:57 GMT, Jacob Atzen <jacob@aub.dk> wrote:

>Som det ses, kan PHP godt håndtere tal selvom de er forklædt som
>strenge.

Diverse RDBMS har heller ingen problemer at man angiver tal som
strings.

Er man i tvivl, kan man altid bruge et API.

--
- Peter Brodersen

Erik Ginnerskov (15-05-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 15-05-05 23:01

Peter Brodersen wrote:

>> Som det ses, kan PHP godt håndtere tal selvom de er forklædt som
>> strenge.
>
> Diverse RDBMS har heller ingen problemer at man angiver tal som
> strings.

Nej, problemet er, at man ikke kan putte en string ind i en databasecelle,
som har fået et ID, der siger int. Når man i php sætter ' eller " omkring en
talrække, er det en string, ikke en int. Fjerner man citationstegn eller
anførselstegn omkring tallet, bliver det til den int, der kan lægges i
datacellen.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk/



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


Dato : 16-05-05 13:44

On Mon, 16 May 2005 00:01:09 +0200, "Erik Ginnerskov"
<erik@donotspammmeplease.invalid> wrote:

>Nej, problemet er, at man ikke kan putte en string ind i en databasecelle,
>som har fået et ID, der siger int. Når man i php sætter ' eller " omkring en
>talrække, er det en string, ikke en int. Fjerner man citationstegn eller
>anførselstegn omkring tallet, bliver det til den int, der kan lægges i
>datacellen.

Ehm, for PHPs vedkommende skal man under alle omstændigheder levere én
string som ens SQL-sætning. PHP kender ikke noget til del-elementerne
i den string. Kun hvis man bruger et API (eller prepared statements)
bliver ens scalars leveret individuelt, og kan derfor være af
forskellige typer.

--
- Peter Brodersen

Dennis Munding (16-05-2005)
Kommentar
Fra : Dennis Munding


Dato : 16-05-05 19:12

Hej Erik!
"Erik Ginnerskov" <erik@donotspammmeplease.invalid> skrev i en meddelelse
news:428792ec$0$79461$14726298@news.sunsite.dk...
> Tja, min viden om php kan som nogen allerede ved, være på et meget lille
> sted. Men jeg ved da at:

Min viden ligger på et endnu mindre sted...

> En string *skal* pakkes ind i enten ' eller "
> Et tal skal *ikke* pakkes ind.

Har ikke læst det afsnit endnu - en fatal fejl!

> Data af typen int (tinyint, bigint...Whatever-int) er heltal. I matematisk
> forstand eksisterer kun int (integer), de andre varianter eksisterer kun i
> databasesammenhæng og definerer antallet af mulige cifre.
>
> Så længe et dataudtræk fra en database kun består af tal (0123456789) og
> ingen andre tegn (bogstaver, ordmellemrum, matematiske operatorer eller
> tegnsætningstegn), gælder php-reglen for tal.

Så blev jeg lidt klogere... Tak!

> Nu husker jeg ikke den tråd, du henviser til, men fremgik det af dit
> spørgsmål, at de omhandlede data var heltal? Hvis ikke, er det klart ingen
> kunne gennemskue dit problem.

Nej, det havde jeg desværre glemt at skrive... Øv!

Vælger at nøjes med at svare på dette indlæg, da de videre indlæg går langt
over min forstand!
Jeg vil dog følge diskusionen nøje - man kan jo altid lære noget nyt!

Med venlig hilsen
--
Dennis Munding
Web-master
http://www.skovaa-munding.dk/
http://www.mundings-memorial.dk/
http://www.cantica.dk/



Christoffer (15-05-2005)
Kommentar
Fra : Christoffer


Dato : 15-05-05 19:29

> Ærede brugere af Nyhedsgrupperne!!
> Jeg har i den seneste tid forsøgt - forgæves! - at lave et script, så jeg
> kunne redigere i min kalender.
> Jeg har fået mange gode råd herinde, men desværre har intet hjulpet...
Du har da fået rettet par fejl undervejs, bla. med overføre variabler fra
din form fået forklaret update.

--
Christoffer



Dennis Munding (16-05-2005)
Kommentar
Fra : Dennis Munding


Dato : 16-05-05 19:08

Hej Christoffer!
"Christoffer" <christoffer@buur.info> skrev i en meddelelse
news:42879500$0$50707$edfadb0f@dread14.news.tele.dk...
> Du har da fået rettet par fejl undervejs, bla. med overføre variabler fra
> din form fået forklaret update.

Ingen tvivl om det!
Selv om det nu ikke var noget problem at overføre dem - det havde jeg løst.
Men jeg manglede at kunne videresende Id'et, og der kom du med en glimrende
forklaring!

Update-funktionen havde jeg læst om, men jeg var ikke klar over måden, som
du beskrev for mig, så ja - jeg har skam fået nyttig viden undervejs!

Men det egentlige problem - at udføre replace-funktionen - var der ingen,
som kunne løse, da I alle som jeg (er min vurdering!), overså de forb.......
citationstegn (enkelte gåseøjne (')), som gjorde opgaven umulig...

Jeg takkede skam også ALLE, som har hjulpet mig undervejs....


Med venlig hilsen
--
Dennis Munding
Web-master
http://www.skovaa-munding.dk/
http://www.mundings-memorial.dk/
http://www.cantica.dk/



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

Månedens bedste
Årets bedste
Sidste års bedste