30/31.01 i 01.02.- pristup MySQL serveru, kreiranje baze i tabele
Povezivanje na MySQL pomoću PHP-a
Da biste u MySQL bazu podataka upisali bilo kakve podatke, prvo se morate povezati sa MySQL serverom baze podataka.
PHP nudi dva različita načina povezivanja sa MySQL serverom:
- MySQLi (poboljšani MySQL)
- procediralni pristup (stariji)
- objektno orijentisani pristup (noviji)
- PDO (PHP podaci objekti) ekstenzije.
Mi ćemo zasad koristiti MySQLi i to objektno orijentisani način
Sintaksa:
$mysqli = new mysqli("hostname", "username", "password", "database");
hostname: ime hosta (npr. localhost) ili IP adresa MySQL servera,
username i password: korisničko ime i šifra za pristup MySQL serveru,
database: ne mora da se navodi ako se samo pristupa serveru, ali ako je navedeno onda je to zadata MySQL baza podataka koja će se koristiti prilikom izvršenja upita.
Sledeći primer pokazuje kako se povezuje sa MySQL serverom baze podataka korišćenjem MySQLi (objektni pristup):
<?php
/* Pokušaj povezivanja na MySQL server.
Pod pretpostavkom da koristite MySQL server sa predefinisanim postavkama (korisnik 'root' bez lozinke) */
$veza = new mysqli("localhost", "root", "", "world");
// Provera konekcije
if($veza === false){
die("GRESKA: Povezivanje nije uspelo. " . $veza->connect_error);
}
// Ispis informacija o hostu
echo "Povezivanje je uspelo. Info o hostu: " . $veza->host_info;
?>
Zatvaranje MySQL baze podataka Server Connection
Veza sa MySQL serverom baze podataka automatski će se zatvoriti čim završi izvršavanje skripte.
Međutim, ako želite da vezu zatvorite ranije, to možete učiniti jednostavnim pozivom PHP funkcije close():
<?php
$veza = new mysqli("localhost", "root", "", "world");
// Provera konekcije
if($veza === false){
die("GRESKA: Povezivanje nije uspelo. " . $veza->connect_error);
}
// Ispis informacija o hostu
echo "Povezivanje je uspelo. Info o hostu: " . $veza->host_info;
// Zatvaranje konekcije
$veza->close();
?>
Kreiranje MySQL baze podataka pomoću PHP-a
Prvo treba kreirati bazu podataka: treba vam SQL upit pomoću izraza CREATE DATABASE.
Nakon toga ćemo izvršiti ovaj SQL upit na taj način što ćemo ga proslediti PHP funkciji query() kojom se kreira naša bazu podataka.
Sledeći primeri kreiraju:
1grupa. Bazu podataka koja se zove slonovi : (klik za prikaz/sakrivanje)
<?php
/* Pokušaj povezivanja na MySQL server.
Pod pretpostavkom da se koristi MySQL server sa predefinisanim postavkama (korisnik 'root' bez lozinke) */
$veza = new mysqli("localhost", "root", "");
// Provera konekcije
if($veza === false){
die("GRESKA: Povezivanje nije uspelo. " . $veza->connect_error);
}
// Pokušaj kreiranja baze podataka
$upit = "CREATE DATABASE slonovi";
if($veza->query($upit) === true){
echo "Baza podataka uspešno kreirana";
} else{
echo "GRESKA: Nije moguće izvršiti $upit. " . $veza->error;
}
// Zatvaranje konekcije
$veza->close();
?>
2grupa. Bazu podataka koja se zove torte: (klik za prikaz/sakrivanje)
<?php
/* Pokušaj povezivanja na MySQL server.
Pod pretpostavkom da se koristi MySQL server sa predefinisanim postavkama (korisnik 'root' bez lozinke) */
$veza = new mysqli("localhost", "root", "");
// Provera konekcije
if($veza === false){
die("GRESKA: Povezivanje nije uspelo. " . $veza->connect_error);
}
// Pokušaj kreiranja baze podataka
$upit = "CREATE DATABASE torte";
if($veza->query($upit) === true){
echo "Baza podataka uspešno kreirana";
} else{
echo "GRESKA: Nije moguće izvršiti $upit. " . $veza->error;
}
// Zatvaranje konekcije
$veza->close();
?>
...
Kreiranje tabele unutar MySQL baze podataka pomoću PHP-a
Izraz SQL CREATE TABLE koristi se za kreiranje tabele u bazi podataka.
Na sličan način kao u prethodnom primeru, kreiraćemo SQL upit pomoću izraza CREATE TABLE.
Nakon toga ćemo da izvršimo ovaj SQL upit tako što ćemo ga proslediti PHP funkciji query():
1. grupa: kreirati tabelu mladunci (id, ime, godiste ) - prikaži / sakrij kôd -
<?php
/* Pokušavanje povezivanja na MySQL server. */
$veza = new mysqli("localhost", "root", "", "slonovi");
// Provera konekcije
if($veza === false){
die("ERROR: Povezivanje nije uspelo " . $mysqli->connect_error);
}
$upit = "CREATE TABLE mladunci(
id INT PRIMARY KEY AUTO_INCREMENT,
ime VARCHAR(30) NOT NULL,
godiste INT
)";
if($veza->query($upit) === true){
echo "Tabela je uspešno kreirana.";
} else{
echo "ERROR: Nije moguće izvršiti $upit : " . $veza->error;
}
// Zatvaranje konekcije
$veza->close();
?>
2. grupa: kreirati tabelu tortice (id, naziv, tezina) - prikaži / sakrij kôd -
<?php
/* Pokušavanje povezivanja na MySQL server. */
$veza = new mysqli("localhost", "root", "", "torte");
// Provera konekcije
if($veza === false){
die("ERROR: Povezivanje nije uspelo " . $mysqli->connect_error);
}
$upit = "CREATE TABLE torte(
id INT PRIMARY KEY AUTO_INCREMENT,
ime VARCHAR(30) NOT NULL,
tezina INT
)";
if($veza->query($upit) === true){
echo "Tabela je uspešno kreirana.";
} else{
echo "ERROR: Nije moguće izvršiti $upit : " . $veza->error;
}
// Zatvaranje konekcije
$veza->close();
?>
Unos podataka u tabelu:
Ubaciti odgovarajući upit za unos podataka (i odgovarajuću poruku ako se desi greška)
1.grupa -> $upit = "INSERT INTO mladunci (ime, godiste) VALUES ('Pera', 2021)";
2.grupa -> $upit = "INSERT INTO tortica (naziv, tezina) VALUES ('Japanski vetar', 1600))";
Unos više redova podataka u tabelu:
Ubaciti odgovarajući upit za unos podataka (i odgovarajuću poruku ako se desi greška)
1.grupa ->
$upit = "INSERT INTO mladunci (ime, godiste) VALUES
('Sima', 1999),
('Aca', 2003),
('Marko', 1903)";
2.grupa ->
$upit = "INSERT INTO tortica (naziv, tezina) VALUES
('Markiza', 1200),
('Schwarzwald', 900)";
Ubacivanje podataka u bazu podataka iz HTML FORME:
Za početak, promenite naziv prethodnog fajla (index.php neka se sada zove index1.php) jer sa nastavlja rad u istom folderu i u VS Code.
Kreirati dva fajla: index.html i insert.php
Prvi korak je da se kreira HTML fajl u kojem se nalazi forma za unos podataka .
U index.html ubacite osnovni html kod (koristite šablon ! za brži rad):
U <body> delu treba ubaciti formu sa dva input polja za unos podataka i submit dugme
U nastavku je za obe grupe postavljen deo HTML koda u kojem se nalaze dva tekstualna <input> polja i dugme za slanje podataka.
prikaži / sakrij kôd za PRVU grupu
<form action="insert.php" method="post">
<form action="insert.php" method="post">
Drugi korak je da se preuzmu podaci iz forme i ubace u bazu podataka
Kada korisnik klikne na dugme za slanje u HTML formi, u našem primeru se podaci iz forme šalju u fajl insert.php. Ovaj fajl se povezuje sa MySQL sistemom za upravljanje bazom podataka, preuzima iz forme podatke pomoću PHP promenljive $_REQUEST i na kraju izvršava upit za unošenje podataka.
Drugim rečima, u insert.php se šalju podaci koje korisnik upisuje u input polja i ti podaci se trebaju upisati u bazu podataka, na sličan način kao što je dosad rađeno
U nastavku je kompletan koda naše datoteke insert.php:
prikaži / sakrij insert.php za PRVU grupu
prikaži / sakrij insert.php za DRUGU grupu