Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Använda en MySQL-databas i PHP

Postad 2003-01-09 av Niklas Andersson i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 13514, Betyg: 91%

Förord

För att kunna utnyttja scriptspråk såsom PHP, ASP, JSP och så vidare maximalt krävs det att man arbetar mot någon slags databas. En SQL-databas är nog enklast att använda, och när man vet att både PHP och databasen MySQL är hundra procent gratis så är väl valet inte speciellt svårt att göra. I den här artikeln tänker jag gå igenom hur du kopplar upp dig mot en MySQL-databas, skriver ut från databasen, raderar poster i databasen samt hur du redigerar dem. Grundläggande kunskaper inom PHP och SQL krävs för att utnyttja artikelns material till fullo.
Innehåll
  » Skapa en anslutning
  » Hämta ut data
  » Radera data
  » Redigera data
  » Stänga anslutningen
  » Andra nyttiga funktioner
  » Avslutningsvis


Skapa en anslutning

PHP är ett mycket enkelt scriptspråk och det krävs bara ett få antal rader programmeringskod för att ansluta sig till sin databas som i det här fallet är MySQL. Funktionen för att koppla upp sig mot databasen ser ut såhär:


$db_link = mysql_connect(”server”, ”användarnamn”, ”lösenord”);
?>


Argumenten som funktionen vill ha är adressen till MySQL-servern, om du har din server lokalt så räcker det vanligtvis med att skriva ”localhost” eller ”127.0.0.1” där, efter det vill funktionen även ha ett användarnamn och ett lösenord till MySQL-servern. Dessa tre argument måste finnas med för att en anslutning mot databasen ska kunna öppnas. Anslutningen finns nu dessutom sparad i en variabel, $db_link, vilket är smidigt om man kanske arbetar mot flera olika MySQL-servrar samtidigt.

Därefter måste vi tala om för MySQL vilken databas vi vill arbeta mot, detta görs väldigt smidigt med funktionen mysql_select_db(). Denna funktion kräver två argument, namnet på databasen samt länken till servern. Så här kan det se ut:


mysql_select_db(”databasnamn”, $db_link);
?>


Eftersom vi har server informationen sparad i variabeln $db_link, så kan vi enkelt referera till den i den här funktionen där vi väljer databas.


Hämta ut data

Sådär, nu är MySQL-databasen redo att arbeta för oss. Det är här SQL kommer in i bilden, när vi ska börja ställa olika förfråganden mot databasen, så att vi senare kan plocka ut de data som vi önskar. Funktionen som via använder är vi ställer en förfrågan mot databasen heter mysql_query(), och används på följande sätt:


$query = ”SELECT * FROM tabell”;
$result = mysql_query($query, $db_link);
?>


Vi börjar med att ge variabeln $query ett SQL-värde, och därefter exekveras den i variabeln $result med funktionen mysql_query() som vi beskrev innan. Svårare än så här är det inte att hämta ut de poster vi önskar, men att sedan lista dem på ett snyggt sätt i en webbsida är kanske lite klurigare. Då måste man på något sätt använda sig av en slinga (om man ska visa flera databasposter på en gång), till exempel med en for-slinga, while-slinga och så vidare. I det här exemplet använder jag dock en while-slinga, för att jag anser att det är smidigare i detta fallet.


$query = ”SELECT * FROM tabell”;
$result = mysql_query($query, $db_link);

while($data = mysql_fetch_array($result))
{
echo $data[“databasfalt”].”
\n”;
}
?>


Jag deklarerar här variabeln $data till att ta emot den array som $result ger oss genom att plocka ut de databasposter vi anger i variabeln $query (detta görs som ni kan se ovan med funktionen myql_fetch_array()). Sedan skriver slingan ut databas fältet ”databasfalt” och därefter en rad brytning för att skilja databasposterna åt.


Radera data

Att radera i en databas är busenkelt, det enda som egentligen krävs är att man vet ID-numret eller något fält i den tabellen så att man kan lokalisera databasposten man önskar att radera. Annars så sker det som vanligt när man exekverar någon SQL-kod, i funktionen mysql_query(). Exempel:


$query = ”DELETE FROM tabell WHERE id = ‘1’”;
$result = mysql_query($query, $db_link);
?>


Så kommer databasposten att raderas. Svårare än så är det inte.




Redigera data

Redigering av databasposter sker precis på samma sätt, fast med annan SQL-kod givetvis. Även här krävs det så klart att man vet ID-numret eller något fält i den tabell så att man kan lokalisera databasposten man önskar att redigera. Exempel:


$query = ”UPDATE tabell SET databasfalt = ‘hejsan’ WHERE id = ‘1’”;
$result = mysql_query($query, $db_link);
?>


Med dettta exempel så ändrar vi värde på databasfältet ”databasfalt” till ”hejsan”. Det krävs som sagt att du kan behärska SQL för att kunna få ett ordentligt grepp om det här, men jag vet att det finns många bra artiklar om det här på Pellesoft.nu så vägen dit är inte speciellt lång.


Stänga anslutningen

När man är klar med de transaktioner som man vill göra med databasen, så är det prestandamässigt bättre om man även stänger databasen efter sig. PHP motorn gör dock detta automatiskt när sista programmeringskodraden är nådd, men det är en onödig procedur som PHP motorn måste göra och det är bättre att man stänger den själv.


mysql_close($db_link);
?>



Andra nyttiga funktioner

Här nedan listar jag några andra databasfunktioner som brukar användas i kombination med PHP och MySQL. Fler användbara funktioner kan du hitta i PHP:s välskrivna manual, som du finner på http://www.php.net.


· mysql_num_rows($result)

Denna funktion kan man använda för att få reda på hur många databasposter som påverkades av din SQL-sträng. Du kan till exempel ta reda på hur många inlägg det finns i en gästbok väldigt smidigt med denna funktion.


· mysql_free_result($result)

Den här funktionen kan vara bra att använda när man arbetar med större webbplatser. Funktionen frigör helt enkelt minnet som resultatet från MySQL-databasen gav oss. Arbetar du med mindre applikationer så behöver du normalt inte använda den, men är man rädd för att minnet ska ta slut så kan den vara värd att använda sig av.


· mysql_fetch_row($result)

Detta är en funktion som är ett alternativ till mysql_fetch_array() som vi använde oss av när vi skrev ut databasposter till klienten längre upp i artikeln. Enda skillnaden är att med mysql_fetch_array() så skriver man ut namnet på databasfältet, men med mysql_fetch_row() så skriver man ut databasfältet med nummer istället i den ordning som de finns i databasen. Vilken funktion man använder är givetvis upp till en själv, men jag föredrar att använda mysql_fetch_array() av det enkla skälet att det är enklast, det blir lite krångligt efter ett tag att hålla reda på i vilken ordning databasfältet står, tro mig. Men funktionen finns till för er som föredrar det. Prestandamässigt mellan de två funktionerna så är det ingen större skillnad.


Avslutningsvis

Nu när du har läst klart den här artikeln så har du förhoppningsvis inga frågor, men någon fråga här och var brukar alltid dyka upp ändå. Hör gärna av dig till mig på niklas@ixnay-it.com eller smidigast är nog om du skickar ett iMail till mig här på Pellesoft.nu med dina frågor. Kom också gärna med förslag på förbättringar, synpunkter, klagomål, kommentarer, ja allt möjligt som är relaterat till ämnet så att jag kan skriva roligare, bättre och framförallt intressantare artiklar.
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 155
27 952
271 704
660
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies