Avatar billede hyperguy Nybegynder
28. juni 2006 - 12:12 Der er 9 kommentarer og
1 løsning

Table prefix i mysql

Jeg har et lille problem. Jeg har fået en database smidt i hovedet som jeg skal arbejde med. Jeg hiver data ud fra 4 tabler men problemet er at nogle af disse table har samme felt navne med forskellig værdie i forhold til hinanden. Jeg har rimelig mange felter som jeg sakl bruge og jeg vil helst undgå at skrive "as" ved hver felt der er ens. Er det ikke muligt at sige til mysql at den skal smide prefix foran tables?

ex.

table1.id = 2
table2.id = 5

Hvis jeg hiver dem ud får jeg 1 id med 2 eller 5, det jeg så vil have den til er at skrive table1_id og table2_id uden at bruge as.

Kan det lade sig gøre?
Avatar billede fsconsult.dk Nybegynder
28. juni 2006 - 12:33 #1
den feature er mere eller mindre indbygget.

du kan jo netop skrive "where table1.id=2 and table2.id=5"

du kan også bruge aliasing ved at lave:

select t1.id, t2.id
from table1 t1, table2 t2, table3 t3
where t1.id>t2.id
and t1.id=t3.postnr;
Avatar billede hyperguy Nybegynder
28. juni 2006 - 12:37 #2
det er ikek helt det jeg skal bruge. Det jeg gerne vil have, det er at den smider mit prefix i resultatet jeg får ud. i php får jeg jo et array hvor keyen er feltnavnet. Der vil jeg gerne have den skriver det som
$sql[prefix_feltnavn] og ikke bare $sql[feltnavn]
Avatar billede fsconsult.dk Nybegynder
28. juni 2006 - 12:41 #3
Det mener jeg ikke umiddelbart du kan i mysql uden at bruge "as" for hvert af dine felter.
Alternativt kan du bruge $sql[0], og $sql[1] i php, hvor du bruger feltets placering i dit select statement, men så skal man holde tungen lige i munden når man tilføjer/fjerner felter.
Avatar billede hyperguy Nybegynder
28. juni 2006 - 12:59 #4
Ja okay det selvf rigtig nok. Men som sagt kan det blive lidt overskuligt, hehe. Næsten underligt mysql ikke kan det, det er da en genial funktion for folk med fucked up database struktur :)
Avatar billede fsconsult.dk Nybegynder
28. juni 2006 - 13:34 #5
fucked op?  det er da en ok struktur ... det er bare php der ik kan håndtere den databasestruktur  ;-)   
har php5 ikke fået noget med prepared statements, som også blokere for sql-injection?
Avatar billede hjochums Nybegynder
28. juni 2006 - 23:08 #6
Det nemmeste er nok, hvis du nægter at bruger AS, at skriv:

while (list($t1_id, $t2_id) = mysql_fetch_array($rs)) {
  bbla..
}

Synes ikke $arr[0]..[x] er så cool, da man hurtig kan miste overblikket ved store while statements..
Avatar billede arne_v Ekspert
29. juni 2006 - 01:17 #7
jo - mysqli har prepared statements
Avatar billede hyperguy Nybegynder
29. juni 2006 - 08:24 #8
Har du et ex. på hvordan det kan laves, arne_v ?
Avatar billede arne_v Ekspert
30. juni 2006 - 00:38 #9
hvad ?

prepared statement ?

(så skal fsconsult nok lige forklare hvordan det hjælper)
Avatar billede hyperguy Nybegynder
24. august 2007 - 08:10 #10
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester