E-gradiva > Računalništvo > Programiranje > Načrtovanje in razvoj spletnih aplikacij > PHP > Podatkovne baze

Prijava

Podatkovne baze

 

Podatkovne baze – izdelava baze s tabelo

 

CREATE DATABASE `mojaBaza` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

USE `mojaBaza`;

CREATE TABLE IF NOT EXISTS `
Oseba` (

            `OsebaID` int(11) NOT NULL auto_increment, 

            `Ime` varchar(255) NOT NULL, 

            `Priimek` varchar(255) NOT NULL, 

            PRIMARY KEY  (`OsebaID`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

 

Podatkovne baze – primer vzpostavitve povezave

 

<?php
$con = mysql_connect('localhost','uporabnik','geslo');

if(!$con)

            exit('Povezava ni uspela!');

else {

            //delo z bazo

}

mysql_close($con);


?>

Podatkovne baze – primer pisanja

 

<?php
//izberemo podatkovno bazo

mysql_select_db('mojaBaza',$con);

 

//pripravim poizvedbo (vstavljanje zapisa)

$sql = 'INSERT INTO Oseba (Ime,Priimek) '

            ."VALUES('Janez','Novak')";

//izvedem poizvedbo
mysql_query($sql);

?>

 

Podatkovne baze – primer branja

 

<?php
//izberem podatkovno bazo

mysql_select_db('mojaBaza',$con);

//izvedem poizvedbo

$rez = mysql_query('SELECT * FROM Oseba');

//obdelam prebrane podatke

while($vrstica = mysql_fetch_array($rez)) {

            echo "Uporabnik {$vrstica['Ime']} {$vrstica['Priimek']}"

                   .' ima ID ' . $vrstica['OsebaID'];

}

?>

Uporabnik Janez Novak ima ID 1

 

Podatkovne baze – shranjene procedure

 

 

Podatkovne baze – primer shranjene procedure

 

CREATE PROCEDURE `Oseba_VrniVse`()

BEGIN

            SELECT * FROM Oseba;

END;

 

 

Podatkovne baze – primer vzpostavitve povezave

 

<?php
$con = mysqli_connect('localhost','uporabnik'

            ,'geslo','mojaBaza');

if(!$con)

            exit('Povezava ni uspela!');

else {

            //delo z bazo

}

mysqli_close($con);

?>

 

Podatkovne baze – primer klica shranjene procedure

 

<?php
//povezava je že vzpostavljena, izvedemo poizvedbo

$rez = mysqli_query($con,'CALL Oseba_VrniVse();');

//obdelam prebrane podatke

while($vrstica = mysqli_fetch_array($rez)) {

            echo "Uporabnik {$vrstica['Ime']} {$vrstica['Priimek']}"

                   .' ima ID ' . $vrstica['OsebaID'];

}

?>

 

Podatkovne baze – primer shranjene procedure 2

 

CREATE PROCEDURE `Oseba_Shrani`(IN pOsebaID INT,IN pIme     VARCHAR(50), IN pPriimek VARCHAR(50))

BEGIN

IF pOsebaID > 0 THEN

            UPDATE Oseba

            SET Ime = pIme, Priimek = pPriimek

            WHERE Oseba = pOseba;

ELSE

INSERT Oseba (Ime,Priimek)

            VALUES (pIme,pPriimek);

END IF;

END;

 

Podatkovne baze – primer klica shranjene procedure 2

 

<?php
//povezava je že vzpostavljena

//shranimo novo osebo

mysql_query("CALL Oseba_Shrani(0,'Ivan','Horvat');");

 

//popravimo podatke (npr. da oseba z ID 2 že obstaja)

mysql_query("CALL Oseba_Shrani(2,'Ivan','Horvat');");

?>

 

Podatkovne baze, entitetno-relacijski (ER) model

 

 

Podatkovne baze - ER tabela

USE `mojaBaza`;

CREATE TABLE IF NOT EXISTS `OS` (

  `id` int(11) NOT NULL auto_increment,

  `id_osebe` int(11) NOT NULL,

  `sistem` varchar(255) NOT NULL,

  `verzija` varchar(255) NOT NULL,

  PRIMARY KEY  (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

 

Podatkovne baze, pisanje ER – primer

 

<?php
//izberem podatkovno bazo    mysql_select_db('mojaBaza',$con);

//pripravim poizvedbo
$sql = 'INSERT INTO OS (id_osebe,ime,verzija) ' . "VALUES(3, 'OS X','10.5 Leopard')";
mysql_query($sql);


?>

 

Podatkovne baze, branje ER – primer

 

<?php

//izvedem poizvedbo

$rez = mysql_query('SELECT (osebe.ime) AS ime, (osebe.priimek) AS priimek, (OS.sistem) AS sistem, (OS.verzija) AS verzija FROM osebe JOIN OS ON osebe.id=OS.id_osebe');

//obdelam prebrane podatke

while($vrstica = mysql_fetch_array($rez)){

        echo $vrstica['ime'] . ' ' . $vrstica['priimek'] . ' uporablja: ' . $vrstica['sistem'] . ' ' . $vrstica['verzija'] . '<br />';

}

mysql_close($con);
?>