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)