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 : 



<?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: 



<?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 )



<?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)



<?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.



<form action="insert.php" method="post">
    <p>
        <label for="ime">Ime: </label>
        <input type="text" name="ime" id="iime">
    </p>
    <p>
        <label for="godiste">Godište: </label>
        <input type="text" name="godiste" id="ggodiste">
    </p>
    <input type="submit" value="Pošalji">
</form>


<form action="insert.php" method="post">
    <p>
        <label for="naziv">Naziv torte: </label>
        <input type="text" name="naziv" id="nnaziv">
    </p>
    <p>
        <label for="tezina">Težina: </label>
        <input type="text" name="tezina" id="ttezina">
    </p>
    <input type="submit" value="Pošalji">
</form>


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:



<?php

$veza = new mysqli("localhost", "root", "", "slonovi");

if($veza === false){
    die("ERROR: Povezivanje nije uspjelo. " . $veza ->connect_error);
}
 
$ime = $veza ->real_escape_string($_REQUEST['ime']);
$godiste = $veza ->real_escape_string($_REQUEST['godiste']);
$upit = "INSERT INTO mladunci (ime, godiste) VALUES ('$ime', $godiste )";

if($veza ->query($upit) === true){
    echo "Uspešno upisani podaci.";
} else{
    echo "ERROR: Nije moguće izvršiti $upit. " . $veza ->error;
}

$veza ->close();
?>
 



<?php

$veza = new mysqli("localhost", "root", "", "torte");

if($veza === false){
    die("ERROR: Povezivanje nije uspjelo. " . $veza ->connect_error);
}
 
$naziv = $veza ->real_escape_string($_REQUEST['naziv']);
$tezina = $veza ->real_escape_string($_REQUEST['tezina']);
$upit = "INSERT INTO tortice (naziv, tezina) VALUES ('$naziv', $tezina )";

if($veza ->query($upit) === true){
    echo "Uspešno upisani podaci.";
} else{
    echo "ERROR: Nije moguće izvršiti $upit. " . $veza ->error;
}

$veza ->close();
?>
 
Last modified: Sunday, 2 November 2025, 3:43 PM