Slik bruker PHP til å samhandle med MySQL


    Innledning
    . Denne artikkelen vil diskutere hvordan å koble PHP og MySQL, for å skape en dynamisk database-drevet nettsted. Jeg vil anta at du allerede har en PHP og MySQL kopiere installert på systemet ditt, og de virker. Jeg vil også anta at du har grunnleggende kunnskap om PHP, inkludert PHP syntaks og hvordan du kjører et PHP-skript.
  1. PHP og MySQL
    . PHP har allerede en MySQL modul i sin distribusjon, slik at du ikke trenger å installere et tilleggsprogram modul.
  2. Opprett MySQL bruker.
    For å opprette et brukernavn og passord for skriptet kjøre MySQL konsoll applikasjon. Du må logge inn som root
    , og deretter utføre denne SQL-setningen:
    CREATE DATABASE db_test; BRUK db_test; CREATE TABLE tbl_phonebook (phone_id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, PHONE_NAME VARCHAR (40), PHONE_NUMBER VARCHAR (40), INDEX phone_name_idx (PHONE_NAME), INDEX phone_number_idx (PHONE_NUMBER)); GRANT SELECT, UPDATE, DELETE, INSERT for å db_test * TO 'test_user' identifisert av 'test_user.';
    Etter at du utfører disse SQL-kommandoer, vil MySQL lage en database som heter db_test
    som inneholder en tabell kalt tbl_phonebook
    . Vi vil bruke denne tabellen for vårt utvalg webapplikasjon.
  3. Tilkobling til MySQL database.
    Å opprette tilkobling til en MySQL database, må du ringe mysql_connect ()
    eller mysql_pconnect ()
    . I utgangspunktet de er alle like, bortsett fra den andre vil skape en vedvarende forbindelse. En vedvarende forbindelse er en forbindelse som vedvarer selv om forbindelsen er lukket
    . ≪? Php $ link = mysql_connect ( 'localhost', 'test_user', 'test_user'); $ Persist_link = mysql_pconnect ( 'localhost', 'test_user', 'test_user'); ? ≫
    mysql_pconnect () er raskere enn mysql_connect () fordi den eliminerer overhead å opprette en tilkobling til MySQL-database. Hvis mysql_pconnect () finner at en vedvarende forbindelse allerede er tilgjengelig for en bruker, vil den bruke den, ellers skaper det ny tilkobling.
    Ved tilkobling ferdigstillelse, mysql_connect () og mysql_pconnect () returnerer et håndtak til tilkobling.


    velge en database som skal brukes.
    å velge database til bruk, må bruken ringe mysql_select_db ()
    . Denne funksjonen krever en database navn og valgfritt håndtak av databasetilkobling. Hvis du utelater håndtaket på forbindelsen, vil den bruke tiden åpen forbindelse
    . ≪? Php $ link = mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test', $ link); ? ≫
    Velge en database er et valgfritt trinn, der du kan hoppe over. Men hvis du gjør det hoppe over det, må du ta med databasenavnet og tabellnavn for å få tilgang til et bord. For eksempel, for å få tilgang tbl_phonebook du må oppgi hele navnet db_test.tbl_phonebook
    stedet for tbl_phonebook
    . Vær oppmerksom på at du må bruke en periode for å skille databasenavnet og tabellnavn.
  4. Utfør SQL-setning.
    Etter at du har en gyldig tilkobling og har valgt en aktiv database, du er klar til å kjøre SQL-setning for å gjøre noen datamanipulasjon. For å utføre SQL-setningen, bruk mysql_query ()
    funksjonen.
    Denne funksjonen krever minst én parameter, som er SQL kommando du ønsker å utføre. Den andre paramater er tilkoblingen du vil bruke. Denne parameteren er valgfri. Hvis du utelater det, er for tiden åpen tilkobling brukes. Hvis det ikke er åpen forbindelse, vil denne funksjonen forsøke å etablere en ny forbindelse
    . ≪? Php mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test'); $ Sql ​​= "SELECT * FROM tbl_phonebook"; mysql_query ($ sql); ? ≫

    Sette inn nye data inn i databasen. Hvis du vil sette en ny rekord i databasen, må du utføre INSERT-setningen. For eksempel:?
    ≪ php mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test'); $ Sql ​​= "INSERT INTO tbl_phonebook (PHONE_NAME PHONE_NUMBER) VALUES ( 'Johny Greenwood', '6281455632112')"; mysql_query ($ sql); ? ≫
    for innsatsen drift, for å vite om henrettelsen lyktes eller mislyktes, bruker vi verdien retur med mysql_query (). Den returnerer boolsk verdi, dvs. SANN hvis det lykkes eller USANN hvis det mislyktes.
    Å vite hvordan hvilke poster ble påvirket av gjennomføringen av denne SQL-kommandoen, vi kaller mysql_affected_rows ()
    . Denne funksjonen trenger en valgfri tilkobling parameter. Hvis det er utelatt da det konfigurasjonsfilen åpen forbindelse vil bli brukt. Denne funksjonen returnerer antall rader påvirket
    . ≪? Php mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test'); $ Sql ​​= "INSERT INTO tbl_phonebook (PHONE_NAME PHONE_NUMBER) VALUES ( 'Johny Greenwood', '6281455632112')"; mysql_query ($ sql); print ( 'Antall rader som påvirkes:' .mysql_affected_rows ()); ? ≫

    Hente data fra en database. Hvis du vil hente data fra en database, bruker vi SELECT kommando. Dette eksempel ble vist tidligere. Her viser vi det igjen
    . ≪? Php mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test'); $ Sql ​​= "SELECT * FROM tbl_phonebook"; mysql_query ($ sql); ? ≫
    ovenfor stykke kode gjorde ingenting nyttig. For å gjøre data tilgjengelig for visning, må vi hente rader. Hvis vi bruker mysql_query () for SELECT drift, vil den returnere ressurser til rader av SELECT-setningen. For å hente data fra denne ressursen bruker vi mysql_fetch_row (), mysql_fetch_assoc (), mysql_fetch_array () eller mysql_fetch_object. Hver gang mysql_fetch _ *** () kalles, databasen markøren er tilveksten til de neste data. Hvis disse avkastning NULL, er markøren på slutten av filen (EOF), så det er ingen flere data å returnere.
    Mysql_fetch_rows () vil hente data og returnere data som en numerisk array. For eksempel:
    Bruk av mysql_fetch_rows ():
    < php mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test'); $ Sql ​​= "SELECT * FROM tbl_phonebook"; $ Res = mysql_query ($ sql); if ($ res) {mens ($ data = mysql_fetch_row ($ res)) {print ( "< p > Navn:". $ data [1]); print ( ". Telefon:" $ data [2] "< /p >".); } mysql_free_result ($ res); } ≫?
    Data fra PHONE_NAME feltet er tilbake i indeksnummer 1, fordi vi valgte alle felt. Så index 0 vil inneholde data av phone_id feltet mens PHONE_NUMBER feltet vil bli returnert i indeks 2.
    mysql_free_result () frigjør ressurser som returneres av mysql_query (). PHP frigjør automatisk alle ressurser når manuset er ferdig, så ringer mysql_free_result () er valgfritt, men sikkert en god programmering vane.
    Mysql_fetch_row () vil hente data og returnere data som en assosiativ array. For eksempel:
    Bruk av mysql_fetch_assoc ():
    < php mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test'); $ Sql ​​= "SELECT * FROM tbl_phonebook"; $ Res = mysql_query ($ sql); if ($ res) {mens ($ data = mysql_fetch_assoc ($ res)) {print ( "< p > Navn:". $ data [ 'PHONE_NAME']); print ( ". Telefon:" $ data [ 'PHONE_NUMBER'] "< /p >".); } mysql_free_result ($ res); } ≫?.
    Merk at navnet på feltet brukes til å indeksere rekke
    mysql_fetch_array () er en kombinasjon av mysql_fetch_row () og mysql_fecth_assoc (). Den returnerer en numerisk matrise samt en assosiativ array.
    Mysql_fetch_object () henter rader og returnerer data som et objekt. For eksempel:?
    ≪ php mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test'); $ Sql ​​= "SELECT * FROM tbl_phonebook"; $ Res = mysql_query ($ sql); if ($ res) {mens ($ data = mysql_fetch_object ($ res)) {print ( "< p > Navn:". $ data- > PHONE_NAME); print ( "Telefon:" $ data- > PHONE_NUMBER "< /p >"..); } mysql_free_result ($ res); } ≫?
    For å vite hvor mange rader er returnert av mysql_query (), kaller du mysql_num_rows ()
    . Det krever en parameter, dvs. ressurs returnert av mysql_query ()
    $ tot_record = mysql_num_rows ($ res);.
  5. Oppdatere data. For å oppdatere data du utføre UPDATE kommando
    . ≪? Php mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test'); $ Sql ​​= "UPDATE tbl_phonebook SET PHONE_NUMBER = '0135928549' WHERE phone_id = 1"; $ Res = mysql_query ($ sql); if ($ res) {print ( 'Oppdater lykkes');} else print ( 'Oppdateringen mislyktes'); ? ≫
    Ligner SETT, ikke UPDATE-kommandoen ikke generere et resultatsett, men kun den boolsk verdi; SANN hvis det lykkes for USANN ellers. For å finne ut hvor mange rader affecteded av UPDATE kommando, bruker mysql_affected_rows ()

    Fjerne data
    å fjerne en post du kan bruke DELETE kommandoen:..
    <? php mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test'); $ Sql ​​= "DELETE FROM tbl_phonebook WHERE phone_id = 1"; $ Res = mysql_query ($ sql); if ($ res) {print ( 'Phone ID = 1 slettet'); } Else print ( 'Kan ikke slette'); ? ≫

    Avslutnings tilkobling. For å lukke det vi har åpnet, vi kaller mysql_close (). Det krever en valgfri parameter, dvs. en forbindelse til å lukke. Hvis vi wanto å lukke den åpne tilkoblingen, utelate valgfri parameter
    . ≪? Php $ link = mysql_connect ( 'localhost', 'test_user', 'test_user'); mysql_select_db ( 'db_test', $ link); $ Sql ​​= "SELECT * FROM tbl_phonebook"; $ Res = mysql_query ($ sql, $ link); if ($ res) {mens ($ data = mysql_fetch_object ($ res)) {print ( "< p > Navn:". $ data- > PHONE_NAME); print ( "Telefon:" $ data- > PHONE_NUMBER "< /p >"..); } mysql_free_result ($ res); } Mysql_close ($ link); ? ≫

    Konklusjon
    Vi har diskutert grunnleggende trinnene for å la PHP samhandle med MySQL, inkludert hvordan å etablere en database tilkobling, hvordan du velger en aktiv database, og hvordan. utføre en SQL-kommando
    bilder Nødvendig verktøy:.
    PHP

    MySQL
    Nyttige linker:
    PHP offisielle nettsiden

    MySQL offisielle nettsiden