Seuraavassa esimerkissä luodaan yksinkertainen PostgreSQL-tietokanta ja esitellään sen käyttöä PHP:llä.
Esimerkissä oletetaan,
että komennot suoritetaan
palvelimella users.cs.helsinki.fi
,
jossa on tehty jo tarvittavat
alkuvalmistelut PHP:n ja
PostgreSQL:n käyttöä varten.
Seuraava komento käynnistää PostgreSQL-komentotulkin:
$ psql
Luodaan taulu tuotteet
ja lisätään siihen kolme riviä:
=> create table tuotteet (id serial primary key, nimi text, hinta integer); => insert into tuotteet (nimi, hinta) values ('kaali', 3); => insert into tuotteet (nimi, hinta) values ('porkkana', 2); => insert into tuotteet (nimi, hinta) values ('peruna', 3);
Kenttä id
saa automaattisesti
kasvavan indeksinumeron (serial
)
ja toimii taulun avaimena (primary key
).
Kenttä nimi
sisältää merkkijonon (text
),
ja kenttä hinta
sisältää kokonaisluvun (integer
).
Taulun sisältö on siis seuraava:
=> select * from tuotteet; id | nimi | hinta ----+----------+------- 1 | kaali | 3 2 | porkkana | 2 3 | peruna | 3 (3 rows)
Nyt on aika poistua PostgreSQL-komentotulkista:
=> \q
Seuraava PHP-skripti näyttää taulun tuotteet
tiedot:
haku.php <?php // yhteyden muodostus tietokantaan try { $yhteys = new PDO("pgsql:host=localhost;dbname=KÄYTTÄJÄTUNNUS", "KÄYTTÄJÄTUNNUS", "SALASANA"); } catch (PDOException $e) { die("VIRHE: " . $e->getMessage()); } $yhteys->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // kyselyn suoritus $kysely = $yhteys->prepare("SELECT * FROM tuotteet"); $kysely->execute(); // haettujen rivien tulostus echo "<table border>"; while ($rivi = $kysely->fetch()) { echo "<tr>"; echo "<td>" . $rivi["nimi"] . "</td>"; echo "<td>" . $rivi["hinta"] . "</td>"; echo "</tr>"; } echo "</table>"; ?>
Testaa skriptiä! (haku.php)
Skriptissä merkinnän KÄYTTÄJÄTUNNUS
kohdalle tulee oma TKTL:n käyttäjätunnus
ja merkinnän SALASANA
kohdalle tulee
PostgreSQL-tietokannan salasana.
Seuraavan skriptin avulla tietokantaan voi lisätä tietoa:
lisays.html <form action="lisays.php" method="post"> <p>Nimi: <br> <input type="text" name="nimi"></p> <p>Hinta: <br> <input type="text" name="hinta"></p> <input type="submit" value="Uusi tuote"> </form>
lisays.php <?php // yhteyden muodostus tietokantaan try { $yhteys = new PDO("pgsql:host=localhost;dbname=KÄYTTÄJÄTUNNUS", "KÄYTTÄJÄTUNNUS", "SALASANA"); } catch (PDOException $e) { die("VIRHE: " . $e->getMessage()); } $yhteys->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // kyselyn suoritus $kysely = $yhteys->prepare("INSERT INTO tuotteet (nimi, hinta) VALUES (?, ?)"); $kysely->execute(array($_POST["nimi"], $_POST["hinta"])); // lisätyn rivin id:n selvitys $id = $yhteys->lastInsertId("tuotteet_id_seq"); echo "Uuden tuotteen id: $id"; ?>
Testaa skriptiä! (lisays.html)